summaryrefslogtreecommitdiff
path: root/src/debug/watanabe_debug_menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/debug/watanabe_debug_menu.c')
-rw-r--r--src/debug/watanabe_debug_menu.c9846
1 files changed, 9846 insertions, 0 deletions
diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c
new file mode 100644
index 000000000..fed5b4e52
--- /dev/null
+++ b/src/debug/watanabe_debug_menu.c
@@ -0,0 +1,9846 @@
+#ifdef DEBUG
+#include "global.h"
+
+EWRAM_DATA u8 unk_debug_ewram_0[56] = { 0 };
+
+u8 byte_3005E30[0x20];
+
+__attribute__((naked))
+void debug_69()
+{
+ asm(
+ " bx lr\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C35DC()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " mov r0, #0x0\n"
+ " bl SetVBlankCallback\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x13\n"
+ " mov r1, #0x0\n"
+ " strh r1, [r0]\n"
+ " add r0, r0, #0xe\n"
+ " strh r1, [r0]\n"
+ " sub r0, r0, #0x2\n"
+ " strh r1, [r0]\n"
+ " sub r0, r0, #0x2\n"
+ " strh r1, [r0]\n"
+ " sub r0, r0, #0x2\n"
+ " strh r1, [r0]\n"
+ " add r0, r0, #0x14\n"
+ " strh r1, [r0]\n"
+ " add r0, r0, #0x2\n"
+ " strh r1, [r0]\n"
+ " sub r0, r0, #0x6\n"
+ " strh r1, [r0]\n"
+ " add r0, r0, #0x2\n"
+ " strh r1, [r0]\n"
+ " sub r0, r0, #0x6\n"
+ " strh r1, [r0]\n"
+ " add r0, r0, #0x2\n"
+ " strh r1, [r0]\n"
+ " sub r0, r0, #0x6\n"
+ " strh r1, [r0]\n"
+ " add r0, r0, #0x2\n"
+ " strh r1, [r0]\n"
+ " mov r3, #0xc0\n"
+ " lsl r3, r3, #0x13\n"
+ " mov r4, #0xc0\n"
+ " lsl r4, r4, #0x9\n"
+ " add r0, sp, #0x4\n"
+ " mov r8, r0\n"
+ " mov r2, sp\n"
+ " mov r6, #0x0\n"
+ " ldr r1, ._2\n"
+ " mov r5, #0x80\n"
+ " lsl r5, r5, #0x5\n"
+ " ldr r7, ._2 + 4\n"
+ " mov r0, #0x81\n"
+ " lsl r0, r0, #0x18\n"
+ " mov ip, r0\n"
+ "._1:\n"
+ " strh r6, [r2]\n"
+ " mov r0, sp\n"
+ " str r0, [r1]\n"
+ " str r3, [r1, #0x4]\n"
+ " str r7, [r1, #0x8]\n"
+ " ldr r0, [r1, #0x8]\n"
+ " add r3, r3, r5\n"
+ " sub r4, r4, r5\n"
+ " cmp r4, r5\n"
+ " bhi ._1 @cond_branch\n"
+ " strh r6, [r2]\n"
+ " mov r2, sp\n"
+ " str r2, [r1]\n"
+ " str r3, [r1, #0x4]\n"
+ " lsr r0, r4, #0x1\n"
+ " mov r2, ip\n"
+ " orr r0, r0, r2\n"
+ " str r0, [r1, #0x8]\n"
+ " ldr r0, [r1, #0x8]\n"
+ " mov r0, #0xe0\n"
+ " lsl r0, r0, #0x13\n"
+ " mov r3, #0x80\n"
+ " lsl r3, r3, #0x3\n"
+ " mov r4, #0x0\n"
+ " str r4, [sp, #0x4]\n"
+ " ldr r2, ._2\n"
+ " mov r1, r8\n"
+ " str r1, [r2]\n"
+ " str r0, [r2, #0x4]\n"
+ " lsr r0, r3, #0x2\n"
+ " mov r1, #0x85\n"
+ " lsl r1, r1, #0x18\n"
+ " orr r0, r0, r1\n"
+ " str r0, [r2, #0x8]\n"
+ " ldr r0, [r2, #0x8]\n"
+ " mov r1, #0xa0\n"
+ " lsl r1, r1, #0x13\n"
+ " mov r0, sp\n"
+ " strh r4, [r0]\n"
+ " str r0, [r2]\n"
+ " str r1, [r2, #0x4]\n"
+ " lsr r3, r3, #0x1\n"
+ " mov r0, #0x81\n"
+ " lsl r0, r0, #0x18\n"
+ " orr r3, r3, r0\n"
+ " str r3, [r2, #0x8]\n"
+ " ldr r0, [r2, #0x8]\n"
+ " bl ResetPaletteFade\n"
+ " bl remove_some_task\n"
+ " bl ResetTasks\n"
+ " bl ResetSpriteData\n"
+ " bl ResetPaletteFade\n"
+ " bl FreeAllSpritePalettes\n"
+ " ldr r0, ._2 + 8\n"
+ " bl LoadSpriteSheet\n"
+ " ldr r0, ._2 + 12\n"
+ " bl LoadSpritePalette\n"
+ " ldr r0, ._2 + 16\n"
+ " bl SetUpWindowConfig\n"
+ " ldr r0, ._2 + 20\n"
+ " bl InitMenuWindow\n"
+ " add sp, sp, #0x8\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._3:\n"
+ " .align 2, 0\n"
+ "._2:\n"
+ " .word 0x40000d4\n"
+ " .word 0x81000800\n"
+ " .word stru_83F8828\n"
+ " .word stru_83F8838\n"
+ " .word gWindowConfig_81E6C3C\n"
+ " .word gWindowConfig_81E6CE4\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C36F4()
+{
+ asm(
+ " push {lr}\n"
+ " bl RunTasks\n"
+ " bl AnimateSprites\n"
+ " bl BuildOamBuffer\n"
+ " bl UpdatePaletteFade\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C370C()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._6\n"
+ " ldrb r1, [r0, #0x7]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._4 @cond_branch\n"
+ " ldr r0, ._6 + 4\n"
+ " bl SetMainCallback2\n"
+ " b ._5\n"
+ "._7:\n"
+ " .align 2, 0\n"
+ "._6:\n"
+ " .word gPaletteFade\n"
+ " .word debug_80C36F4+1\n"
+ "._4:\n"
+ " bl AnimateSprites\n"
+ " bl BuildOamBuffer\n"
+ " bl UpdatePaletteFade\n"
+ "._5:\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C373C()
+{
+ asm(
+ " push {lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl DestroyTask\n"
+ " bl ScriptContext2_Disable\n"
+ " ldr r0, ._8\n"
+ " bl SetMainCallback2\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._9:\n"
+ " .align 2, 0\n"
+ "._8:\n"
+ " .word sub_80546F0+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C3758()
+{
+ asm(
+ " push {lr}\n"
+ " bl LoadOam\n"
+ " bl ProcessSpriteCopyRequests\n"
+ " bl TransferPlttBuffer\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C376C()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r5, r0, #0x10\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r7, r1, #0x18\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r6, r2, #0x18\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x0\n"
+ "._10:\n"
+ " mov r3, sp\n"
+ " add r0, r3, r1\n"
+ " strb r2, [r0]\n"
+ " add r0, r1, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r1, r0, #0x18\n"
+ " cmp r1, #0x2\n"
+ " bls ._10 @cond_branch\n"
+ " mov r1, sp\n"
+ " mov r0, #0xff\n"
+ " strb r0, [r1, #0x3]\n"
+ " mov r4, #0x0\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x64\n"
+ " bl __udivsi3\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._11 @cond_branch\n"
+ " mov r1, sp\n"
+ " add r0, r0, #0xa1\n"
+ " strb r0, [r1]\n"
+ " mov r4, #0x1\n"
+ "._11:\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x64\n"
+ " bl __umodsi3\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " mov r1, #0xa\n"
+ " bl __udivsi3\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._12 @cond_branch\n"
+ " cmp r4, #0\n"
+ " beq ._13 @cond_branch\n"
+ "._12:\n"
+ " mov r1, sp\n"
+ " add r0, r0, #0xa1\n"
+ " strb r0, [r1, #0x1]\n"
+ "._13:\n"
+ " mov r4, sp\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x64\n"
+ " bl __umodsi3\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " mov r1, #0xa\n"
+ " bl __umodsi3\n"
+ " add r0, r0, #0xa1\n"
+ " strb r0, [r4, #0x2]\n"
+ " mov r0, sp\n"
+ " add r1, r7, #0\n"
+ " add r2, r6, #0\n"
+ " bl MenuPrint\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C3800()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " add sp, sp, #0xfffffff4\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r4, r0, #0x10\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r6, r1, #0x18\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r5, r2, #0x18\n"
+ " mov r3, #0x0\n"
+ " ldr r2, ._18\n"
+ " mov r1, #0x0\n"
+ "._14:\n"
+ " mov r7, sp\n"
+ " add r0, r7, r3\n"
+ " strb r1, [r0]\n"
+ " add r0, r3, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r3, r0, #0x18\n"
+ " cmp r3, #0x9\n"
+ " bls ._14 @cond_branch\n"
+ " add r1, r7, r3\n"
+ " mov r0, #0xff\n"
+ " strb r0, [r1]\n"
+ " mov r3, #0x0\n"
+ " mov r0, #0xb\n"
+ " add r1, r4, #0\n"
+ " mul r1, r1, r0\n"
+ " add r0, r1, r2\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0xff\n"
+ " beq ._16 @cond_branch\n"
+ " add r4, r2, #0\n"
+ " add r2, r1, #0\n"
+ "._17:\n"
+ " mov r0, sp\n"
+ " add r1, r0, r3\n"
+ " add r0, r3, r2\n"
+ " add r0, r0, r4\n"
+ " ldrb r0, [r0]\n"
+ " strb r0, [r1]\n"
+ " add r0, r3, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r3, r0, #0x18\n"
+ " add r0, r3, r2\n"
+ " add r0, r0, r4\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0xff\n"
+ " beq ._16 @cond_branch\n"
+ " cmp r3, #0x9\n"
+ " bls ._17 @cond_branch\n"
+ "._16:\n"
+ " mov r0, sp\n"
+ " add r1, r6, #0\n"
+ " add r2, r5, #0\n"
+ " bl MenuPrint\n"
+ " add sp, sp, #0xc\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._19:\n"
+ " .align 2, 0\n"
+ "._18:\n"
+ " .word gSpeciesNames\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C3878()
+{
+ asm(
+ " push {lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " cmp r0, #0\n"
+ " beq ._20 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " beq ._21 @cond_branch\n"
+ "._20:\n"
+ " cmp r1, #0x1\n"
+ " bls ._22 @cond_branch\n"
+ " sub r0, r1, #1\n"
+ " b ._23\n"
+ "._22:\n"
+ " ldr r1, ._25\n"
+ " b ._28\n"
+ "._26:\n"
+ " .align 2, 0\n"
+ "._25:\n"
+ " .word 0x19b\n"
+ "._21:\n"
+ " mov r0, #0xcd\n"
+ " lsl r0, r0, #0x1\n"
+ " cmp r1, r0\n"
+ " bhi ._27 @cond_branch\n"
+ " add r0, r1, #1\n"
+ "._23:\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r1, r0, #0x10\n"
+ " b ._28\n"
+ "._27:\n"
+ " mov r1, #0x1\n"
+ "._28:\n"
+ " add r0, r1, #0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C38B4()
+{
+ asm(
+ " push {lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r0, r1, #0x10\n"
+ " cmp r2, #0\n"
+ " beq ._29 @cond_branch\n"
+ " cmp r2, #0x1\n"
+ " beq ._30 @cond_branch\n"
+ "._29:\n"
+ " cmp r0, #0\n"
+ " beq ._31 @cond_branch\n"
+ " sub r0, r0, #0x1\n"
+ " b ._32\n"
+ "._31:\n"
+ " mov r0, #0x52\n"
+ " b ._35\n"
+ "._30:\n"
+ " cmp r0, #0x51\n"
+ " bhi ._34 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ "._32:\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " b ._35\n"
+ "._34:\n"
+ " mov r0, #0x0\n"
+ "._35:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C38E4()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " add r4, r2, #0\n"
+ " add r5, r3, #0\n"
+ " ldr r6, [sp, #0x1c]\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r8, r0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r7, r1, #0x18\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " lsl r5, r5, #0x18\n"
+ " lsr r5, r5, #0x18\n"
+ " lsl r6, r6, #0x18\n"
+ " lsr r6, r6, #0x18\n"
+ " ldr r1, ._37\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " bl memcpy\n"
+ " add r0, r7, #0\n"
+ " add r1, r4, #0\n"
+ " add r2, r7, #0\n"
+ " add r3, r5, #0\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " cmp r6, #0\n"
+ " beq ._36 @cond_branch\n"
+ " mov r0, sp\n"
+ " add r1, r7, #0\n"
+ " mov r2, r8\n"
+ " bl MenuPrint\n"
+ "._36:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._38:\n"
+ " .align 2, 0\n"
+ "._37:\n"
+ " .word gUnknown_Debug_083F7FD4\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C393C()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r1, ._39\n"
+ " mov r0, #0x1e\n"
+ " bl ProgramFlashSectorAndVerify\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._40:\n"
+ " .align 2, 0\n"
+ "._39:\n"
+ " .word gUnknown_Debug_083F7FD6\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void InitWatanabeDebugMenu()
+{
+ asm(
+ " push {r4, lr}\n"
+ " ldr r0, ._46\n"
+ " ldr r1, ._46 + 4\n"
+ " add r4, r0, r1\n"
+ " ldrb r0, [r4]\n"
+ " cmp r0, #0x1\n"
+ " beq ._41 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " ble ._42 @cond_branch\n"
+ " cmp r0, #0x2\n"
+ " beq ._43 @cond_branch\n"
+ " cmp r0, #0x3\n"
+ " beq ._44 @cond_branch\n"
+ "._42:\n"
+ " bl save_serialize_map\n"
+ " bl sub_8125E2C\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r4]\n"
+ " b ._51\n"
+ "._47:\n"
+ " .align 2, 0\n"
+ "._46:\n"
+ " .word gMain\n"
+ " .word 0x43c\n"
+ "._41:\n"
+ " bl sub_8125E6C\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._51 @cond_branch\n"
+ " b ._49\n"
+ "._43:\n"
+ " mov r0, #0x37\n"
+ " bl PlaySE\n"
+ "._49:\n"
+ " ldrb r0, [r4]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r4]\n"
+ " b ._51\n"
+ "._44:\n"
+ " bl IsSEPlaying\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._51 @cond_branch\n"
+ " bl ScriptContext2_Disable\n"
+ " ldr r0, ._52\n"
+ " bl SetMainCallback2\n"
+ "._51:\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._53:\n"
+ " .align 2, 0\n"
+ "._52:\n"
+ " .word sub_80546F0+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void InitSizeComparison()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " bl debug_80C35DC\n"
+ " ldr r1, ._54\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " ldr r0, ._54 + 4\n"
+ " mov r1, #0x80\n"
+ " lsl r1, r1, #0x1\n"
+ " mov r2, #0x20\n"
+ " bl LoadPalette\n"
+ " ldr r3, ._54 + 8\n"
+ " ldrh r2, [r3]\n"
+ " mov r0, #0x0\n"
+ " strh r0, [r3]\n"
+ " ldr r4, ._54 + 12\n"
+ " ldrh r0, [r4]\n"
+ " mov r1, #0x1\n"
+ " orr r0, r0, r1\n"
+ " strh r0, [r4]\n"
+ " strh r2, [r3]\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, ._54 + 16\n"
+ " bl SetVBlankCallback\n"
+ " ldr r0, ._54 + 20\n"
+ " bl SetMainCallback2\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 r0, ._54 + 24\n"
+ " mov r1, #0x0\n"
+ " bl CreateTask\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r2, ._54 + 28\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r2\n"
+ " mov r0, #0xfc\n"
+ " strh r0, [r1, #0x8]\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._55:\n"
+ " .align 2, 0\n"
+ "._54:\n"
+ " .word gReservedSpritePaletteCount\n"
+ " .word unk_debug_ewram_0\n"
+ " .word 0x4000208\n"
+ " .word 0x4000200\n"
+ " .word debug_80C3758+1\n"
+ " .word debug_80C370C+1\n"
+ " .word debug_80C3A50+1\n"
+ " .word gTasks\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C3A50()
+{
+ 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"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r1, ._56\n"
+ " lsl r2, r0, #0x2\n"
+ " add r0, r2, r0\n"
+ " lsl r0, r0, #0x3\n"
+ " add r7, r0, r1\n"
+ " ldrh r0, [r7, #0x8]\n"
+ " str r0, [sp, #0x4]\n"
+ " bl NationalPokedexNumToSpecies\n"
+ " mov r1, sp\n"
+ " strh r0, [r1, #0x8]\n"
+ " add r2, r0, #0\n"
+ " lsl r2, r2, #0x10\n"
+ " str r2, [sp, #0xc]\n"
+ " lsr r2, r2, #0x10\n"
+ " mov r9, r2\n"
+ " ldr r3, ._56 + 4\n"
+ " mov r8, r3\n"
+ " mov r0, #0x6\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x17\n"
+ " mov r3, #0x9\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x5\n"
+ " mov r3, #0x9\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r5, ._56 + 8\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r4, ._56 + 12\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " mov r0, #0x18\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x9\n"
+ " bl MenuDrawTextWindow\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x19\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x19\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0xb\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r0, ._56 + 16\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xb\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._56 + 20\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xd\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._56 + 24\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xf\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._56 + 28\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x11\n"
+ " bl MenuPrint\n"
+ " mov r0, #0xc\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0xf\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r0, ._56 + 32\n"
+ " mov r1, #0xd\n"
+ " mov r2, #0xb\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._56 + 36\n"
+ " mov r1, #0xd\n"
+ " mov r2, #0xd\n"
+ " bl MenuPrint\n"
+ " mov r0, #0xc\n"
+ " mov r1, #0x10\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r0, ._56 + 40\n"
+ " mov r1, #0xd\n"
+ " mov r2, #0x11\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._56 + 44\n"
+ " mov r1, #0x18\n"
+ " mov r2, #0x11\n"
+ " bl MenuPrint\n"
+ " mov r0, r9\n"
+ " mov r1, #0x12\n"
+ " mov r2, #0x11\n"
+ " bl debug_80C3800\n"
+ " mov r1, r8\n"
+ " ldrb r0, [r1, #0x8]\n"
+ " mov r1, #0x98\n"
+ " mov r2, #0x28\n"
+ " mov r3, #0x0\n"
+ " bl sub_8091A4C\n"
+ " mov r2, sp\n"
+ " strh r0, [r2, #0x10]\n"
+ " add r3, r0, #0\n"
+ " lsl r3, r3, #0x10\n"
+ " str r3, [sp, #0x18]\n"
+ " lsr r0, r3, #0x10\n"
+ " str r0, [sp, #0x14]\n"
+ " lsl r4, r0, #0x4\n"
+ " add r4, r4, r0\n"
+ " lsl r4, r4, #0x2\n"
+ " ldr r1, ._56 + 48\n"
+ " add r4, r4, r1\n"
+ " ldrb r1, [r4, #0x1]\n"
+ " mov r2, #0x4\n"
+ " neg r2, r2\n"
+ " mov sl, r2\n"
+ " mov r0, sl\n"
+ " and r0, r0, r1\n"
+ " mov r3, #0x1\n"
+ " orr r0, r0, r3\n"
+ " strb r0, [r4, #0x1]\n"
+ " ldrb r1, [r4, #0x3]\n"
+ " mov r0, #0x3f\n"
+ " neg r0, r0\n"
+ " mov r9, r0\n"
+ " and r0, r0, r1\n"
+ " mov r1, #0x4\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r4, #0x3]\n"
+ " ldrb r1, [r4, #0x5]\n"
+ " sub r2, r2, #0x9\n"
+ " mov r8, r2\n"
+ " mov r0, r8\n"
+ " and r0, r0, r1\n"
+ " mov r3, #0xf\n"
+ " and r0, r0, r3\n"
+ " strb r0, [r4, #0x5]\n"
+ " mov r0, #0x0\n"
+ " bl GetSpritePaletteTagByPaletteNum\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " bl FreeSpritePaletteByTag\n"
+ " ldr r0, ._56 + 52\n"
+ " ldr r1, [sp, #0x4]\n"
+ " lsl r5, r1, #0x3\n"
+ " add r5, r5, r1\n"
+ " lsl r5, r5, #0x2\n"
+ " add r5, r5, r0\n"
+ " ldrh r6, [r5, #0x20]\n"
+ " strh r6, [r4, #0x26]\n"
+ " ldrh r4, [r5, #0x1e]\n"
+ " str r4, [sp]\n"
+ " mov r0, #0x2\n"
+ " add r1, r4, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x0\n"
+ " bl SetOamMatrix\n"
+ " mov r2, sp\n"
+ " ldrh r2, [r2, #0x14]\n"
+ " strh r2, [r7, #0xe]\n"
+ " strh r6, [r7, #0x10]\n"
+ " strh r4, [r7, #0x14]\n"
+ " ldr r0, [sp, #0x4]\n"
+ " mov r1, #0x58\n"
+ " mov r2, #0x28\n"
+ " mov r3, #0x1\n"
+ " bl sub_80918EC\n"
+ " mov r3, sp\n"
+ " strh r0, [r3, #0x1c]\n"
+ " lsl r0, r0, #0x10\n"
+ " str r0, [sp, #0x24]\n"
+ " lsr r1, r0, #0x10\n"
+ " str r1, [sp, #0x20]\n"
+ " lsl r4, r1, #0x4\n"
+ " add r4, r4, r1\n"
+ " lsl r4, r4, #0x2\n"
+ " ldr r2, ._56 + 48\n"
+ " add r4, r4, r2\n"
+ " ldrb r0, [r4, #0x1]\n"
+ " mov r3, sl\n"
+ " and r3, r3, r0\n"
+ " mov r0, #0x1\n"
+ " orr r3, r3, r0\n"
+ " strb r3, [r4, #0x1]\n"
+ " ldrb r0, [r4, #0x3]\n"
+ " mov r1, r9\n"
+ " and r1, r1, r0\n"
+ " mov r0, #0x2\n"
+ " orr r1, r1, r0\n"
+ " strb r1, [r4, #0x3]\n"
+ " ldrb r0, [r4, #0x5]\n"
+ " mov r2, r8\n"
+ " and r2, r2, r0\n"
+ " mov r3, #0xf\n"
+ " and r2, r2, r3\n"
+ " strb r2, [r4, #0x5]\n"
+ " mov r0, #0x0\n"
+ " bl GetSpritePaletteTagByPaletteNum\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " bl FreeSpritePaletteByTag\n"
+ " ldrh r0, [r5, #0x1c]\n"
+ " mov r8, r0\n"
+ " strh r0, [r4, #0x26]\n"
+ " ldrh r4, [r5, #0x1a]\n"
+ " str r4, [sp]\n"
+ " mov r0, #0x1\n"
+ " add r1, r4, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x0\n"
+ " bl SetOamMatrix\n"
+ " mov r1, sp\n"
+ " ldrh r1, [r1, #0x20]\n"
+ " strh r1, [r7, #0xc]\n"
+ " mov r2, r8\n"
+ " strh r2, [r7, #0x12]\n"
+ " strh r4, [r7, #0x16]\n"
+ " mov r3, #0x0\n"
+ " strh r3, [r7, #0x18]\n"
+ " strh r3, [r7, #0x1a]\n"
+ " ldr r1, ._56 + 56\n"
+ " ldr r2, ._56 + 60\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " mov r0, #0x1f\n"
+ " strh r0, [r1]\n"
+ " ldr r2, ._56 + 64\n"
+ " mov r3, #0x18\n"
+ " ldsh r1, [r7, r3]\n"
+ " lsl r1, r1, #0x6\n"
+ " add r0, r1, #0\n"
+ " add r0, r0, #0x38\n"
+ " lsl r0, r0, #0x8\n"
+ " add r1, r1, #0x78\n"
+ " add r0, r0, r1\n"
+ " strh r0, [r2]\n"
+ " ldr r1, ._56 + 68\n"
+ " ldr r2, ._56 + 72\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " sub r1, r1, #0x2\n"
+ " ldr r3, ._56 + 76\n"
+ " add r0, r3, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " ldr r2, ._56 + 80\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0xa\n"
+ " mov r0, #0xe1\n"
+ " strh r0, [r1]\n"
+ " ldr r0, ._56 + 84\n"
+ " mov r3, #0x0\n"
+ " strh r3, [r0]\n"
+ " add r1, r1, #0x4\n"
+ " mov r0, #0x7\n"
+ " strh r0, [r1]\n"
+ " mov r2, #0x80\n"
+ " lsl r2, r2, #0x13\n"
+ " ldrh r0, [r2]\n"
+ " mov r3, #0xc0\n"
+ " lsl r3, r3, #0x7\n"
+ " add r1, r3, #0\n"
+ " orr r0, r0, r1\n"
+ " strh r0, [r2]\n"
+ " ldr r0, ._56 + 88\n"
+ " str r0, [r7]\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 {r0}\n"
+ " bx r0\n"
+ "._57:\n"
+ " .align 2, 0\n"
+ "._56:\n"
+ " .word gTasks\n"
+ " .word gSaveBlock2\n"
+ " .word gUnknown_Debug_083F7FD6+0x4\n"
+ " .word gUnknown_Debug_083F7FDE\n"
+ " .word gUnknown_Debug_083F7FE2\n"
+ " .word gUnknown_Debug_083F7FED\n"
+ " .word gUnknown_Debug_083F7FF6\n"
+ " .word gUnknown_Debug_083F8001\n"
+ " .word gUnknown_Debug_083F800C\n"
+ " .word gUnknown_Debug_083F8019\n"
+ " .word gUnknown_Debug_083F8022\n"
+ " .word gUnknown_Debug_083F8028\n"
+ " .word gSprites\n"
+ " .word gPokedexEntries\n"
+ " .word 0x4000048\n"
+ " .word 0x3f1f\n"
+ " .word 0x4000040\n"
+ " .word 0x4000044\n"
+ " .word 0x848\n"
+ " .word 0x31bf\n"
+ " .word 0x14f\n"
+ " .word 0x4000052\n"
+ " .word debug_80C3D2C+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C3D2C()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " add r7, r6, #0\n"
+ " ldr r4, ._60\n"
+ " ldrh r1, [r4, #0x2e]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._58 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " mov r1, #0x0\n"
+ " str r1, [sp]\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x10\n"
+ " bl BeginNormalPaletteFade\n"
+ " ldr r0, ._60 + 4\n"
+ " bl SetMainCallback2\n"
+ " ldr r1, ._60 + 8\n"
+ " lsl r0, r6, #0x2\n"
+ " add r0, r0, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._60 + 12\n"
+ " str r1, [r0]\n"
+ " b ._117\n"
+ "._61:\n"
+ " .align 2, 0\n"
+ "._60:\n"
+ " .word gMain\n"
+ " .word debug_80C370C+1\n"
+ " .word gTasks\n"
+ " .word debug_80C373C+1\n"
+ "._58:\n"
+ " mov r5, #0x1\n"
+ " add r0, r5, #0\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._62 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r1, ._64\n"
+ " lsl r0, r6, #0x2\n"
+ " add r0, r0, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldrh r1, [r0, #0x18]\n"
+ " mov r2, #0x1\n"
+ " eor r1, r1, r2\n"
+ " strh r1, [r0, #0x18]\n"
+ " b ._117\n"
+ "._65:\n"
+ " .align 2, 0\n"
+ "._64:\n"
+ " .word gTasks\n"
+ "._62:\n"
+ " ldrh r1, [r4, #0x30]\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._66 @cond_branch\n"
+ " ldr r1, ._70\n"
+ " lsl r2, r6, #0x2\n"
+ " add r0, r2, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r3, r0, r1\n"
+ " mov r5, #0x18\n"
+ " ldsh r0, [r3, r5]\n"
+ " mov r8, r1\n"
+ " cmp r0, #0\n"
+ " beq ._67 @cond_branch\n"
+ " ldrh r1, [r4, #0x2c]\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._68 @cond_branch\n"
+ " ldrh r0, [r3, #0x14]\n"
+ " add r0, r0, #0x10\n"
+ " b ._69\n"
+ "._71:\n"
+ " .align 2, 0\n"
+ "._70:\n"
+ " .word gTasks\n"
+ "._68:\n"
+ " ldrh r0, [r3, #0x14]\n"
+ " add r0, r0, #0x1\n"
+ "._69:\n"
+ " strh r0, [r3, #0x14]\n"
+ " add r0, r2, r7\n"
+ " lsl r0, r0, #0x3\n"
+ " mov r2, r8\n"
+ " add r1, r0, r2\n"
+ " ldrh r0, [r1, #0x14]\n"
+ " mov r6, #0x80\n"
+ " lsl r6, r6, #0x8\n"
+ " cmp r0, r6\n"
+ " bhi ._72 @cond_branch\n"
+ " b ._117\n"
+ "._72:\n"
+ " strh r6, [r1, #0x14]\n"
+ " b ._117\n"
+ "._67:\n"
+ " ldrh r1, [r4, #0x2c]\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._75 @cond_branch\n"
+ " ldrh r0, [r3, #0x16]\n"
+ " add r0, r0, #0x10\n"
+ " b ._76\n"
+ "._75:\n"
+ " ldrh r0, [r3, #0x16]\n"
+ " add r0, r0, #0x1\n"
+ "._76:\n"
+ " strh r0, [r3, #0x16]\n"
+ " add r0, r2, r7\n"
+ " lsl r0, r0, #0x3\n"
+ " mov r4, r8\n"
+ " add r1, r0, r4\n"
+ " ldrh r0, [r1, #0x16]\n"
+ " mov r6, #0x80\n"
+ " lsl r6, r6, #0x8\n"
+ " cmp r0, r6\n"
+ " bhi ._77 @cond_branch\n"
+ " b ._117\n"
+ "._77:\n"
+ " strh r6, [r1, #0x16]\n"
+ " b ._117\n"
+ "._66:\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._80 @cond_branch\n"
+ " ldr r1, ._84\n"
+ " lsl r2, r6, #0x2\n"
+ " add r0, r2, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r3, r0, r1\n"
+ " mov r5, #0x18\n"
+ " ldsh r0, [r3, r5]\n"
+ " mov r8, r1\n"
+ " cmp r0, #0\n"
+ " beq ._81 @cond_branch\n"
+ " ldrh r1, [r4, #0x2c]\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._82 @cond_branch\n"
+ " ldrh r0, [r3, #0x14]\n"
+ " sub r0, r0, #0x10\n"
+ " b ._83\n"
+ "._85:\n"
+ " .align 2, 0\n"
+ "._84:\n"
+ " .word gTasks\n"
+ "._82:\n"
+ " ldrh r0, [r3, #0x14]\n"
+ " sub r0, r0, #0x1\n"
+ "._83:\n"
+ " strh r0, [r3, #0x14]\n"
+ " add r0, r2, r7\n"
+ " lsl r0, r0, #0x3\n"
+ " mov r2, r8\n"
+ " add r1, r0, r2\n"
+ " mov r4, #0x14\n"
+ " ldsh r0, [r1, r4]\n"
+ " cmp r0, #0xff\n"
+ " ble ._86 @cond_branch\n"
+ " b ._117\n"
+ "._86:\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " strh r0, [r1, #0x14]\n"
+ " b ._117\n"
+ "._81:\n"
+ " ldrh r1, [r4, #0x2c]\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._89 @cond_branch\n"
+ " ldrh r0, [r3, #0x16]\n"
+ " sub r0, r0, #0x10\n"
+ " b ._90\n"
+ "._89:\n"
+ " ldrh r0, [r3, #0x16]\n"
+ " sub r0, r0, #0x1\n"
+ "._90:\n"
+ " strh r0, [r3, #0x16]\n"
+ " add r0, r2, r7\n"
+ " lsl r0, r0, #0x3\n"
+ " mov r5, r8\n"
+ " add r1, r0, r5\n"
+ " mov r2, #0x16\n"
+ " ldsh r0, [r1, r2]\n"
+ " cmp r0, #0xff\n"
+ " ble ._91 @cond_branch\n"
+ " b ._117\n"
+ "._91:\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " strh r0, [r1, #0x16]\n"
+ " b ._117\n"
+ "._80:\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._94 @cond_branch\n"
+ " ldr r0, ._97\n"
+ " lsl r1, r6, #0x2\n"
+ " add r1, r1, r6\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " mov r4, #0x18\n"
+ " ldsh r0, [r1, r4]\n"
+ " cmp r0, #0\n"
+ " beq ._95 @cond_branch\n"
+ " ldrh r0, [r1, #0x10]\n"
+ " sub r0, r0, #0x1\n"
+ " strh r0, [r1, #0x10]\n"
+ " b ._117\n"
+ "._98:\n"
+ " .align 2, 0\n"
+ "._97:\n"
+ " .word gTasks\n"
+ "._95:\n"
+ " ldrh r0, [r1, #0x12]\n"
+ " sub r0, r0, #0x1\n"
+ " strh r0, [r1, #0x12]\n"
+ " b ._117\n"
+ "._94:\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._100 @cond_branch\n"
+ " ldr r0, ._103\n"
+ " lsl r1, r6, #0x2\n"
+ " add r1, r1, r6\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " mov r5, #0x18\n"
+ " ldsh r0, [r1, r5]\n"
+ " cmp r0, #0\n"
+ " beq ._101 @cond_branch\n"
+ " ldrh r0, [r1, #0x10]\n"
+ " add r0, r0, #0x1\n"
+ " strh r0, [r1, #0x10]\n"
+ " b ._117\n"
+ "._104:\n"
+ " .align 2, 0\n"
+ "._103:\n"
+ " .word gTasks\n"
+ "._101:\n"
+ " ldrh r0, [r1, #0x12]\n"
+ " add r0, r0, #0x1\n"
+ " strh r0, [r1, #0x12]\n"
+ " b ._117\n"
+ "._100:\n"
+ " mov r0, #0x8\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._106 @cond_branch\n"
+ " ldr r2, ._109\n"
+ " lsl r3, r6, #0x2\n"
+ " add r0, r3, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r6, r0, r2\n"
+ " ldrh r4, [r6, #0x8]\n"
+ " mov r0, #0x8\n"
+ " ldsh r1, [r6, r0]\n"
+ " ldr r0, ._109 + 4\n"
+ " mov r8, r2\n"
+ " add r2, r3, #0\n"
+ " cmp r1, r0\n"
+ " bgt ._107 @cond_branch\n"
+ " add r0, r4, #1\n"
+ " strh r0, [r6, #0x8]\n"
+ " b ._108\n"
+ "._110:\n"
+ " .align 2, 0\n"
+ "._109:\n"
+ " .word gTasks\n"
+ " .word 0x181\n"
+ "._107:\n"
+ " strh r5, [r6, #0x8]\n"
+ "._108:\n"
+ " add r4, r2, r7\n"
+ " lsl r4, r4, #0x3\n"
+ " add r4, r4, r8\n"
+ " mov r2, #0xc\n"
+ " ldsh r1, [r4, r2]\n"
+ " b ._111\n"
+ "._106:\n"
+ " mov r0, #0x4\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._112 @cond_branch\n"
+ " ldr r1, ._115\n"
+ " lsl r2, r6, #0x2\n"
+ " add r0, r2, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r3, r0, r1\n"
+ " ldrh r6, [r3, #0x8]\n"
+ " mov r4, #0x8\n"
+ " ldsh r0, [r3, r4]\n"
+ " mov r8, r1\n"
+ " cmp r0, #0x1\n"
+ " ble ._113 @cond_branch\n"
+ " sub r0, r6, #1\n"
+ " b ._114\n"
+ "._116:\n"
+ " .align 2, 0\n"
+ "._115:\n"
+ " .word gTasks\n"
+ "._113:\n"
+ " mov r0, #0xc1\n"
+ " lsl r0, r0, #0x1\n"
+ "._114:\n"
+ " strh r0, [r3, #0x8]\n"
+ " add r4, r2, r7\n"
+ " lsl r4, r4, #0x3\n"
+ " add r4, r4, r8\n"
+ " mov r5, #0xc\n"
+ " ldsh r1, [r4, r5]\n"
+ "._111:\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r5, ._118\n"
+ " add r0, r0, r5\n"
+ " bl DestroySprite\n"
+ " mov r0, #0xe\n"
+ " ldsh r1, [r4, r0]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r5\n"
+ " bl DestroySprite\n"
+ " ldr r0, ._118 + 4\n"
+ " str r0, [r4]\n"
+ " b ._117\n"
+ "._119:\n"
+ " .align 2, 0\n"
+ "._118:\n"
+ " .word gSprites\n"
+ " .word debug_80C3A50+1\n"
+ "._112:\n"
+ " ldr r0, ._120\n"
+ " lsl r5, r7, #0x2\n"
+ " add r5, r5, r7\n"
+ " lsl r5, r5, #0x3\n"
+ " add r5, r5, r0\n"
+ " ldrh r4, [r5, #0x16]\n"
+ " ldrh r6, [r5, #0x12]\n"
+ " str r4, [sp]\n"
+ " mov r0, #0x1\n"
+ " add r1, r4, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x0\n"
+ " bl SetOamMatrix\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x3\n"
+ " mov r3, #0x4\n"
+ " bl debug_80C68CC\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x7\n"
+ " mov r3, #0x4\n"
+ " bl debug_80C68CC\n"
+ " ldr r2, ._120 + 4\n"
+ " mov r8, r2\n"
+ " mov r4, #0xc\n"
+ " ldsh r1, [r5, r4]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r8\n"
+ " strh r6, [r0, #0x26]\n"
+ " ldrh r4, [r5, #0x14]\n"
+ " ldrh r6, [r5, #0x10]\n"
+ " str r4, [sp]\n"
+ " mov r0, #0x2\n"
+ " add r1, r4, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x0\n"
+ " bl SetOamMatrix\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x19\n"
+ " mov r2, #0x3\n"
+ " mov r3, #0x4\n"
+ " bl debug_80C68CC\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x19\n"
+ " mov r2, #0x7\n"
+ " mov r3, #0x4\n"
+ " bl debug_80C68CC\n"
+ " mov r0, #0xe\n"
+ " ldsh r1, [r5, r0]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r8\n"
+ " strh r6, [r0, #0x26]\n"
+ " ldr r2, ._120 + 8\n"
+ " mov r4, #0x18\n"
+ " ldsh r1, [r5, r4]\n"
+ " lsl r1, r1, #0x6\n"
+ " add r0, r1, #0\n"
+ " add r0, r0, #0x38\n"
+ " lsl r0, r0, #0x8\n"
+ " add r1, r1, #0x78\n"
+ " add r0, r0, r1\n"
+ " strh r0, [r2]\n"
+ "._117:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._121:\n"
+ " .align 2, 0\n"
+ "._120:\n"
+ " .word gTasks\n"
+ " .word gSprites\n"
+ " .word 0x4000040\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C405C()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add r4, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r5, r1, #0x10\n"
+ " mov r2, #0x0\n"
+ " mov r1, #0x0\n"
+ "._122:\n"
+ " add r0, r4, r2\n"
+ " strb r1, [r0]\n"
+ " add r0, r2, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " cmp r2, #0x9\n"
+ " bls ._122 @cond_branch\n"
+ " add r0, r4, r2\n"
+ " mov r1, #0xff\n"
+ " strb r1, [r0]\n"
+ " mov r0, #0xae\n"
+ " strb r0, [r4]\n"
+ " cmp r5, #0\n"
+ " beq ._125 @cond_branch\n"
+ " mov r2, #0x0\n"
+ " ldr r3, ._127\n"
+ " mov r0, #0xb\n"
+ " add r1, r5, #0\n"
+ " mul r1, r1, r0\n"
+ " add r0, r1, r3\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0xff\n"
+ " beq ._125 @cond_branch\n"
+ " add r5, r3, #0\n"
+ " add r3, r1, #0\n"
+ "._126:\n"
+ " add r1, r4, r2\n"
+ " add r0, r2, r3\n"
+ " add r0, r0, r5\n"
+ " ldrb r0, [r0]\n"
+ " strb r0, [r1]\n"
+ " add r0, r2, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " add r0, r2, r3\n"
+ " add r0, r0, r5\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0xff\n"
+ " beq ._125 @cond_branch\n"
+ " cmp r2, #0x9\n"
+ " bls ._126 @cond_branch\n"
+ "._125:\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._128:\n"
+ " .align 2, 0\n"
+ "._127:\n"
+ " .word gSpeciesNames\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C40C4()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ " mov r5, #0x0\n"
+ " mov r6, sp\n"
+ "._135:\n"
+ " cmp r7, #0\n"
+ " beq ._129 @cond_branch\n"
+ " mov r0, #0x64\n"
+ " add r1, r5, #0\n"
+ " mul r1, r1, r0\n"
+ " ldr r0, ._132\n"
+ " add r4, r1, r0\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0xb\n"
+ " bl GetMonData\n"
+ " cmp r0, #0\n"
+ " beq ._134 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " bl CalculateMonStats\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x3a\n"
+ " bl GetMonData\n"
+ " strh r0, [r6]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x39\n"
+ " mov r2, sp\n"
+ " bl SetMonData\n"
+ " b ._134\n"
+ "._133:\n"
+ " .align 2, 0\n"
+ "._132:\n"
+ " .word gEnemyParty\n"
+ "._129:\n"
+ " mov r0, #0x64\n"
+ " add r1, r5, #0\n"
+ " mul r1, r1, r0\n"
+ " ldr r0, ._136\n"
+ " add r4, r1, r0\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0xb\n"
+ " bl GetMonData\n"
+ " cmp r0, #0\n"
+ " beq ._134 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " bl CalculateMonStats\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x3a\n"
+ " bl GetMonData\n"
+ " strh r0, [r6]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x39\n"
+ " mov r2, sp\n"
+ " bl SetMonData\n"
+ "._134:\n"
+ " add r0, r5, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " cmp r5, #0x5\n"
+ " bls ._135 @cond_branch\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._137:\n"
+ " .align 2, 0\n"
+ "._136:\n"
+ " .word gPlayerParty\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void InitBattleForDebug()
+{
+ asm(
+ " push {lr}\n"
+ " bl SavePlayerParty\n"
+ " ldr r1, ._138\n"
+ " ldr r0, ._138 + 4\n"
+ " ldrb r2, [r0, #0x8]\n"
+ " mov r0, #0x0\n"
+ " strb r2, [r1, #0xd]\n"
+ " strb r0, [r1]\n"
+ " strb r0, [r1, #0x1]\n"
+ " strb r0, [r1, #0x2]\n"
+ " strb r0, [r1, #0x3]\n"
+ " strb r0, [r1, #0x4]\n"
+ " strb r0, [r1, #0x5]\n"
+ " strb r0, [r1, #0x6]\n"
+ " strb r0, [r1, #0x7]\n"
+ " strb r0, [r1, #0x8]\n"
+ " strb r0, [r1, #0xc]\n"
+ " ldr r1, ._138 + 8\n"
+ " str r0, [r1]\n"
+ " bl ZeroPlayerPartyMons\n"
+ " bl ZeroEnemyPartyMons\n"
+ " mov r0, #0x0\n"
+ " bl debug_80C4214\n"
+ " ldr r0, ._138 + 12\n"
+ " mov r1, #0x0\n"
+ " bl CreateTask\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._139:\n"
+ " .align 2, 0\n"
+ "._138:\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word gSaveBlock2\n"
+ " .word byte_3005E30\n"
+ " .word debug_80C47BC+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C41A8()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r1, ._140\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1, #0x1]\n"
+ " strb r0, [r1, #0x2]\n"
+ " bl ZeroPlayerPartyMons\n"
+ " bl ZeroEnemyPartyMons\n"
+ " mov r0, #0x0\n"
+ " bl debug_80C4214\n"
+ " ldr r0, ._140 + 4\n"
+ " mov r1, #0x0\n"
+ " bl CreateTask\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._141:\n"
+ " .align 2, 0\n"
+ "._140:\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word debug_80C47BC+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C41D4()
+{
+ asm(
+ " push {lr}\n"
+ " mov r0, #0x0\n"
+ " bl debug_80C40C4\n"
+ " mov r0, #0x0\n"
+ " bl debug_80C4214\n"
+ " ldr r0, ._142\n"
+ " mov r1, #0x0\n"
+ " bl CreateTask\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._143:\n"
+ " .align 2, 0\n"
+ "._142:\n"
+ " .word debug_80C42B8+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C41F4()
+{
+ asm(
+ " push {lr}\n"
+ " mov r0, #0x1\n"
+ " bl debug_80C40C4\n"
+ " mov r0, #0x1\n"
+ " bl debug_80C4214\n"
+ " ldr r0, ._144\n"
+ " mov r1, #0x0\n"
+ " bl CreateTask\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._145:\n"
+ " .align 2, 0\n"
+ "._144:\n"
+ " .word debug_80C42B8+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C4214()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " bl debug_80C35DC\n"
+ " ldr r6, ._146\n"
+ " mov r4, #0x0\n"
+ " strh r4, [r6]\n"
+ " ldr r5, ._146 + 4\n"
+ " strh r4, [r5]\n"
+ " ldr r0, ._146 + 8\n"
+ " strh r4, [r0]\n"
+ " add r0, r0, #0x4\n"
+ " strh r4, [r0]\n"
+ " ldr r1, ._146 + 12\n"
+ " ldr r2, ._146 + 16\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " mov r0, #0x31\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x6\n"
+ " mov r0, #0xe1\n"
+ " strh r0, [r1]\n"
+ " ldr r0, ._146 + 20\n"
+ " strh r4, [r0]\n"
+ " add r1, r1, #0x4\n"
+ " mov r0, #0x7\n"
+ " strh r0, [r1]\n"
+ " ldr r3, ._146 + 24\n"
+ " ldrh r2, [r3]\n"
+ " strh r4, [r3]\n"
+ " ldr r4, ._146 + 28\n"
+ " ldrh r0, [r4]\n"
+ " mov r1, #0x1\n"
+ " orr r0, r0, r1\n"
+ " strh r0, [r4]\n"
+ " strh r2, [r3]\n"
+ " ldr r0, ._146 + 32\n"
+ " bl SetVBlankCallback\n"
+ " ldr r0, ._146 + 36\n"
+ " bl SetMainCallback2\n"
+ " mov r1, #0x80\n"
+ " lsl r1, r1, #0x13\n"
+ " ldr r2, ._146 + 40\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._146 + 44\n"
+ " add r0, r1, #0\n"
+ " strh r0, [r6]\n"
+ " ldr r2, ._146 + 48\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r5]\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._147:\n"
+ " .align 2, 0\n"
+ "._146:\n"
+ " .word 0x4000040\n"
+ " .word 0x4000044\n"
+ " .word 0x4000042\n"
+ " .word 0x4000048\n"
+ " .word 0x1111\n"
+ " .word 0x4000052\n"
+ " .word 0x4000208\n"
+ " .word 0x4000200\n"
+ " .word debug_80C3758+1\n"
+ " .word debug_80C370C+1\n"
+ " .word 0x7140\n"
+ " .word 0x1ef\n"
+ " .word 0x819f\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C42B8()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add sp, sp, #0xffffffe4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " ldr r1, ._150\n"
+ " mov r0, sp\n"
+ " mov r2, #0xc\n"
+ " bl memcpy\n"
+ " add r4, sp, #0xc\n"
+ " ldr r1, ._150 + 4\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0xd\n"
+ " bl memcpy\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x10\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r0, sp\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x11\n"
+ " bl MenuPrint\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0x11\n"
+ " bl MenuPrint\n"
+ " bl debug_80C4694\n"
+ " bl debug_80C4704\n"
+ " ldr r0, ._150 + 8\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._148 @cond_branch\n"
+ " ldr r0, ._150 + 12\n"
+ " lsl r1, r5, #0x2\n"
+ " add r1, r1, r5\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._150 + 16\n"
+ " b ._149\n"
+ "._151:\n"
+ " .align 2, 0\n"
+ "._150:\n"
+ " .word gUnknown_Debug_083F8194\n"
+ " .word gUnknown_Debug_083F81A0\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word gTasks\n"
+ " .word debug_80C44EC+1\n"
+ "._148:\n"
+ " ldr r0, ._152\n"
+ " lsl r1, r5, #0x2\n"
+ " add r1, r1, r5\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._152 + 4\n"
+ "._149:\n"
+ " str r0, [r1]\n"
+ " add sp, sp, #0x1c\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._153:\n"
+ " .align 2, 0\n"
+ "._152:\n"
+ " .word gTasks\n"
+ " .word debug_80C4348+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C4348()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " ldr r0, ._154\n"
+ " ldrb r0, [r0, #0x1]\n"
+ " lsl r0, r0, #0x19\n"
+ " mov r1, #0xc0\n"
+ " lsl r1, r1, #0x12\n"
+ " add r0, r0, r1\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r1, #0x1\n"
+ " str r1, [sp]\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0xe\n"
+ " bl debug_80C38E4\n"
+ " ldr r1, ._154 + 4\n"
+ " ldr r2, ._154 + 8\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " add r2, r2, #0x8\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._154 + 12\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._154 + 16\n"
+ " str r1, [r0]\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._155:\n"
+ " .align 2, 0\n"
+ "._154:\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word 0x4000042\n"
+ " .word 0x177\n"
+ " .word gTasks\n"
+ " .word debug_80C43A8+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C43A8()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " ldr r1, ._158\n"
+ " ldrh r2, [r1, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r2\n"
+ " add r3, r1, #0\n"
+ " cmp r0, #0\n"
+ " beq ._156 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r0, ._158 + 4\n"
+ " ldrb r1, [r0, #0x1]\n"
+ " mov r0, #0x64\n"
+ " mul r0, r0, r1\n"
+ " ldr r1, ._158 + 8\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._158 + 12\n"
+ " bl debug_sub_80A433C\n"
+ " add r0, r4, #0\n"
+ " bl DestroyTask\n"
+ " b ._180\n"
+ "._159:\n"
+ " .align 2, 0\n"
+ "._158:\n"
+ " .word gMain\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word gPlayerParty\n"
+ " .word debug_80C41D4+1\n"
+ "._156:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._160 @cond_branch\n"
+ " ldr r0, ._162\n"
+ " lsl r1, r4, #0x2\n"
+ " add r1, r1, r4\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._162 + 4\n"
+ " str r0, [r1]\n"
+ " b ._180\n"
+ "._163:\n"
+ " .align 2, 0\n"
+ "._162:\n"
+ " .word gTasks\n"
+ " .word debug_80C4F48+1\n"
+ "._160:\n"
+ " mov r0, #0x8\n"
+ " and r0, r0, r2\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r1, r0, #0x10\n"
+ " cmp r1, #0\n"
+ " beq ._164 @cond_branch\n"
+ " bl debug_80C4774\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._180 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " bl CalculatePlayerPartyCount\n"
+ " bl CalculateEnemyPartyCount\n"
+ " ldr r0, ._167\n"
+ " lsl r1, r4, #0x2\n"
+ " add r1, r1, r4\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._167 + 4\n"
+ " str r0, [r1]\n"
+ " b ._180\n"
+ "._168:\n"
+ " .align 2, 0\n"
+ "._167:\n"
+ " .word gTasks\n"
+ " .word debug_80C4D14+1\n"
+ "._164:\n"
+ " mov r0, #0x88\n"
+ " lsl r0, r0, #0x1\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._169 @cond_branch\n"
+ " str r1, [sp]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0xe\n"
+ " bl debug_80C38E4\n"
+ " ldr r0, ._171\n"
+ " lsl r1, r4, #0x2\n"
+ " add r1, r1, r4\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._171 + 4\n"
+ " str r0, [r1]\n"
+ " b ._180\n"
+ "._172:\n"
+ " .align 2, 0\n"
+ "._171:\n"
+ " .word gTasks\n"
+ " .word debug_80C44EC+1\n"
+ "._169:\n"
+ " ldrh r1, [r3, #0x30]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._174 @cond_branch\n"
+ " ldr r1, ._176\n"
+ " ldrb r0, [r1, #0x1]\n"
+ " cmp r0, #0\n"
+ " beq ._174 @cond_branch\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r1, #0x1]\n"
+ " b ._175\n"
+ "._177:\n"
+ " .align 2, 0\n"
+ "._176:\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ "._174:\n"
+ " ldrh r1, [r3, #0x30]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._180 @cond_branch\n"
+ " ldr r5, ._181\n"
+ " ldrb r0, [r5, #0x1]\n"
+ " cmp r0, #0x4\n"
+ " bhi ._180 @cond_branch\n"
+ " add r1, r0, #0\n"
+ " mov r0, #0x64\n"
+ " mul r0, r0, r1\n"
+ " ldr r1, ._181 + 4\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0xb\n"
+ " bl GetMonData\n"
+ " cmp r0, #0\n"
+ " beq ._180 @cond_branch\n"
+ " ldrb r0, [r5, #0x1]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r5, #0x1]\n"
+ "._175:\n"
+ " ldr r1, ._181 + 8\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._181 + 12\n"
+ " str r1, [r0]\n"
+ "._180:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._182:\n"
+ " .align 2, 0\n"
+ "._181:\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word gPlayerParty\n"
+ " .word gTasks\n"
+ " .word debug_80C4348+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C44EC()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " ldr r0, ._183\n"
+ " ldrb r0, [r0, #0x2]\n"
+ " lsl r0, r0, #0x19\n"
+ " mov r1, #0xc0\n"
+ " lsl r1, r1, #0x12\n"
+ " add r0, r0, r1\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r1, #0x1\n"
+ " str r1, [sp]\n"
+ " mov r1, #0x10\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0xe\n"
+ " bl debug_80C38E4\n"
+ " ldr r1, ._183 + 4\n"
+ " ldr r2, ._183 + 8\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " ldr r2, ._183 + 12\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._183 + 16\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._183 + 20\n"
+ " str r1, [r0]\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._184:\n"
+ " .align 2, 0\n"
+ "._183:\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word 0x4000042\n"
+ " .word 0x79ef\n"
+ " .word 0x17f\n"
+ " .word gTasks\n"
+ " .word debug_80C4550+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C4550()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " ldr r1, ._187\n"
+ " ldrh r2, [r1, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r2\n"
+ " add r3, r1, #0\n"
+ " cmp r0, #0\n"
+ " beq ._185 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r0, ._187 + 4\n"
+ " ldrb r1, [r0, #0x2]\n"
+ " mov r0, #0x64\n"
+ " mul r0, r0, r1\n"
+ " ldr r1, ._187 + 8\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._187 + 12\n"
+ " bl debug_sub_80A433C\n"
+ " add r0, r4, #0\n"
+ " bl DestroyTask\n"
+ " b ._209\n"
+ "._188:\n"
+ " .align 2, 0\n"
+ "._187:\n"
+ " .word gMain\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word gEnemyParty\n"
+ " .word debug_80C41F4+1\n"
+ "._185:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._189 @cond_branch\n"
+ " ldr r0, ._191\n"
+ " lsl r1, r4, #0x2\n"
+ " add r1, r1, r4\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._191 + 4\n"
+ " str r0, [r1]\n"
+ " b ._209\n"
+ "._192:\n"
+ " .align 2, 0\n"
+ "._191:\n"
+ " .word gTasks\n"
+ " .word debug_80C4F48+1\n"
+ "._189:\n"
+ " mov r0, #0x8\n"
+ " and r0, r0, r2\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r1, r0, #0x10\n"
+ " cmp r1, #0\n"
+ " beq ._193 @cond_branch\n"
+ " bl debug_80C4774\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._209 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " bl CalculatePlayerPartyCount\n"
+ " bl CalculateEnemyPartyCount\n"
+ " ldr r0, ._196\n"
+ " lsl r1, r4, #0x2\n"
+ " add r1, r1, r4\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._196 + 4\n"
+ " str r0, [r1]\n"
+ " b ._209\n"
+ "._197:\n"
+ " .align 2, 0\n"
+ "._196:\n"
+ " .word gTasks\n"
+ " .word debug_80C4D14+1\n"
+ "._193:\n"
+ " mov r0, #0x88\n"
+ " lsl r0, r0, #0x2\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._198 @cond_branch\n"
+ " str r1, [sp]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x10\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0xe\n"
+ " bl debug_80C38E4\n"
+ " ldr r0, ._200\n"
+ " lsl r1, r4, #0x2\n"
+ " add r1, r1, r4\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._200 + 4\n"
+ " str r0, [r1]\n"
+ " b ._209\n"
+ "._201:\n"
+ " .align 2, 0\n"
+ "._200:\n"
+ " .word gTasks\n"
+ " .word debug_80C4348+1\n"
+ "._198:\n"
+ " ldrh r1, [r3, #0x30]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._203 @cond_branch\n"
+ " ldr r1, ._205\n"
+ " ldrb r0, [r1, #0x2]\n"
+ " cmp r0, #0\n"
+ " beq ._203 @cond_branch\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r1, #0x2]\n"
+ " b ._204\n"
+ "._206:\n"
+ " .align 2, 0\n"
+ "._205:\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ "._203:\n"
+ " ldrh r1, [r3, #0x30]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._209 @cond_branch\n"
+ " ldr r5, ._210\n"
+ " ldrb r0, [r5, #0x2]\n"
+ " cmp r0, #0x4\n"
+ " bhi ._209 @cond_branch\n"
+ " add r1, r0, #0\n"
+ " mov r0, #0x64\n"
+ " mul r0, r0, r1\n"
+ " ldr r1, ._210 + 4\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0xb\n"
+ " bl GetMonData\n"
+ " cmp r0, #0\n"
+ " beq ._209 @cond_branch\n"
+ " ldrb r0, [r5, #0x2]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r5, #0x2]\n"
+ "._204:\n"
+ " ldr r1, ._210 + 8\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._210 + 12\n"
+ " str r1, [r0]\n"
+ "._209:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._211:\n"
+ " .align 2, 0\n"
+ "._210:\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word gEnemyParty\n"
+ " .word gTasks\n"
+ " .word debug_80C44EC+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C4694()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add sp, sp, #0xffffffe4\n"
+ " ldr r1, ._213\n"
+ " mov r0, sp\n"
+ " mov r2, #0xd\n"
+ " bl memcpy\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xe\n"
+ " mov r3, #0xf\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r0, sp\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " mov r4, #0x0\n"
+ " add r5, sp, #0x10\n"
+ "._212:\n"
+ " mov r0, #0x64\n"
+ " mul r0, r0, r4\n"
+ " ldr r1, ._213 + 4\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0xb\n"
+ " bl GetMonData\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " add r0, r5, #0\n"
+ " bl debug_80C405C\n"
+ " lsl r2, r4, #0x19\n"
+ " mov r0, #0xc0\n"
+ " lsl r0, r0, #0x12\n"
+ " add r2, r2, r0\n"
+ " lsr r2, r2, #0x18\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x2\n"
+ " bl MenuPrint\n"
+ " add r0, r4, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " cmp r4, #0x5\n"
+ " bls ._212 @cond_branch\n"
+ " add sp, sp, #0x1c\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._214:\n"
+ " .align 2, 0\n"
+ "._213:\n"
+ " .word gUnknown_Debug_083F81AD\n"
+ " .word gPlayerParty\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C4704()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add sp, sp, #0xffffffe4\n"
+ " ldr r1, ._216\n"
+ " mov r0, sp\n"
+ " mov r2, #0xd\n"
+ " bl memcpy\n"
+ " mov r0, #0xf\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0xf\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r0, sp\n"
+ " mov r1, #0x11\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " mov r4, #0x0\n"
+ " add r5, sp, #0x10\n"
+ "._215:\n"
+ " mov r0, #0x64\n"
+ " mul r0, r0, r4\n"
+ " ldr r1, ._216 + 4\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0xb\n"
+ " bl GetMonData\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " add r0, r5, #0\n"
+ " bl debug_80C405C\n"
+ " lsl r2, r4, #0x19\n"
+ " mov r0, #0xc0\n"
+ " lsl r0, r0, #0x12\n"
+ " add r2, r2, r0\n"
+ " lsr r2, r2, #0x18\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x11\n"
+ " bl MenuPrint\n"
+ " add r0, r4, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " cmp r4, #0x5\n"
+ " bls ._215 @cond_branch\n"
+ " add sp, sp, #0x1c\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._217:\n"
+ " .align 2, 0\n"
+ "._216:\n"
+ " .word gUnknown_Debug_083F81BA\n"
+ " .word gEnemyParty\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C4774()
+{
+ asm(
+ " push {r4, lr}\n"
+ " ldr r0, ._221\n"
+ " ldrb r0, [r0, #0xc]\n"
+ " sub r0, r0, #0x1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r1, #0x64\n"
+ " add r4, r0, #0\n"
+ " mul r4, r4, r1\n"
+ " ldr r0, ._221 + 4\n"
+ " add r0, r4, r0\n"
+ " mov r1, #0xb\n"
+ " bl GetMonData\n"
+ " cmp r0, #0\n"
+ " beq ._219 @cond_branch\n"
+ " ldr r0, ._221 + 8\n"
+ " add r0, r4, r0\n"
+ " mov r1, #0xb\n"
+ " bl GetMonData\n"
+ " cmp r0, #0\n"
+ " beq ._219 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " b ._220\n"
+ "._222:\n"
+ " .align 2, 0\n"
+ "._221:\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word gPlayerParty\n"
+ " .word gEnemyParty\n"
+ "._219:\n"
+ " mov r0, #0x0\n"
+ "._220:\n"
+ " pop {r4}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C47BC()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " add sp, sp, #0xffffffc0\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ " ldr r1, ._224\n"
+ " mov r0, sp\n"
+ " mov r2, #0xf\n"
+ " bl memcpy\n"
+ " add r4, sp, #0x10\n"
+ " ldr r1, ._224 + 4\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0xd\n"
+ " bl memcpy\n"
+ " add r6, sp, #0x20\n"
+ " ldr r1, ._224 + 8\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0xf\n"
+ " bl memcpy\n"
+ " add r5, sp, #0x30\n"
+ " ldr r1, ._224 + 12\n"
+ " add r0, r5, #0\n"
+ " mov r2, #0x10\n"
+ " bl memcpy\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x10\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r0, sp\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x11\n"
+ " bl MenuPrint\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0x11\n"
+ " bl MenuPrint\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xe\n"
+ " mov r3, #0xf\n"
+ " bl MenuDrawTextWindow\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " mov r4, #0x0\n"
+ " ldr r6, ._224 + 16\n"
+ "._223:\n"
+ " lsl r0, r4, #0x3\n"
+ " add r0, r0, r6\n"
+ " ldr r0, [r0]\n"
+ " lsl r2, r4, #0x19\n"
+ " mov r1, #0xc0\n"
+ " lsl r1, r1, #0x12\n"
+ " add r2, r2, r1\n"
+ " lsr r2, r2, #0x18\n"
+ " mov r1, #0x2\n"
+ " bl MenuPrint\n"
+ " add r0, r4, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " cmp r4, #0x4\n"
+ " bls ._223 @cond_branch\n"
+ " mov r0, #0xf\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0xf\n"
+ " bl MenuDrawTextWindow\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x11\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._224 + 20\n"
+ " ldrb r0, [r0, #0x4]\n"
+ " bl debug_80C4C44\n"
+ " ldr r1, ._224 + 24\n"
+ " lsl r0, r7, #0x2\n"
+ " add r0, r0, r7\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._224 + 28\n"
+ " str r1, [r0]\n"
+ " add sp, sp, #0x40\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._225:\n"
+ " .align 2, 0\n"
+ "._224:\n"
+ " .word gUnknown_Debug_083F81C7\n"
+ " .word gUnknown_Debug_083F81A0\n"
+ " .word gUnknown_Debug_083F81D6\n"
+ " .word gUnknown_Debug_083F81E5\n"
+ " .word gUnknown_Debug_083F8068\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word gTasks\n"
+ " .word debug_80C48A0+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C48A0()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " ldr r0, ._226\n"
+ " ldrb r0, [r0, #0x3]\n"
+ " lsl r0, r0, #0x19\n"
+ " mov r1, #0xc0\n"
+ " lsl r1, r1, #0x12\n"
+ " add r0, r0, r1\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r1, #0x1\n"
+ " str r1, [sp]\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0xe\n"
+ " bl debug_80C38E4\n"
+ " ldr r1, ._226 + 4\n"
+ " ldr r2, ._226 + 8\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " add r2, r2, #0x8\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._226 + 12\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._226 + 16\n"
+ " str r1, [r0]\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._227:\n"
+ " .align 2, 0\n"
+ "._226:\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word 0x4000042\n"
+ " .word 0x177\n"
+ " .word gTasks\n"
+ " .word debug_80C4900+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C4900()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " ldr r1, ._230\n"
+ " ldrh r2, [r1, #0x2e]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r2\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r4, r0, #0x10\n"
+ " add r3, r1, #0\n"
+ " cmp r4, #0\n"
+ " beq ._228 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " mov r4, #0x0\n"
+ " str r4, [sp]\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x10\n"
+ " bl BeginNormalPaletteFade\n"
+ " ldr r0, ._230 + 4\n"
+ " bl SetMainCallback2\n"
+ " bl LoadPlayerParty\n"
+ " ldr r1, ._230 + 8\n"
+ " ldr r0, ._230 + 12\n"
+ " ldrb r0, [r0, #0xd]\n"
+ " strb r0, [r1, #0x8]\n"
+ " ldr r0, ._230 + 16\n"
+ " mov r1, #0x0\n"
+ " strh r4, [r0]\n"
+ " ldr r0, ._230 + 20\n"
+ " strb r1, [r0]\n"
+ " ldr r1, ._230 + 24\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._230 + 28\n"
+ " b ._229\n"
+ "._231:\n"
+ " .align 2, 0\n"
+ "._230:\n"
+ " .word gMain\n"
+ " .word debug_80C370C+1\n"
+ " .word gSaveBlock2\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word gBattleTypeFlags\n"
+ " .word gUnknown_02023A14_50\n"
+ " .word gTasks\n"
+ " .word debug_80C373C+1\n"
+ "._228:\n"
+ " mov r0, #0x8\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " bne ._232 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._233 @cond_branch\n"
+ "._232:\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r1, ._236\n"
+ " ldr r3, ._236 + 4\n"
+ " ldr r2, ._236 + 8\n"
+ " ldrb r0, [r2, #0x3]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r3\n"
+ " ldrb r0, [r0, #0x4]\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._236 + 12\n"
+ " mov r0, #0x8\n"
+ " strb r0, [r1]\n"
+ " ldrb r0, [r2, #0x3]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r3\n"
+ " ldrb r0, [r0, #0x5]\n"
+ " strb r0, [r2, #0xc]\n"
+ " ldrb r0, [r2, #0x3]\n"
+ " sub r0, r0, #0x1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x1\n"
+ " bhi ._234 @cond_branch\n"
+ " str r4, [sp]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0xe\n"
+ " bl debug_80C38E4\n"
+ " ldr r0, ._236 + 16\n"
+ " lsl r1, r5, #0x2\n"
+ " add r1, r1, r5\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._236 + 20\n"
+ " str r0, [r1]\n"
+ " b ._247\n"
+ "._237:\n"
+ " .align 2, 0\n"
+ "._236:\n"
+ " .word gBattleTypeFlags\n"
+ " .word gUnknown_Debug_083F8068\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word gUnknown_02023A14_50\n"
+ " .word gTasks\n"
+ " .word debug_80C4A60+1\n"
+ "._234:\n"
+ " ldr r0, ._239\n"
+ " lsl r1, r5, #0x2\n"
+ " add r1, r1, r5\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._239 + 4\n"
+ " str r0, [r1]\n"
+ " b ._247\n"
+ "._240:\n"
+ " .align 2, 0\n"
+ "._239:\n"
+ " .word gTasks\n"
+ " .word debug_80C4F48+1\n"
+ "._233:\n"
+ " ldrh r1, [r3, #0x30]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._242 @cond_branch\n"
+ " ldr r1, ._244\n"
+ " ldrb r0, [r1, #0x3]\n"
+ " cmp r0, #0\n"
+ " beq ._242 @cond_branch\n"
+ " sub r0, r0, #0x1\n"
+ " b ._243\n"
+ "._245:\n"
+ " .align 2, 0\n"
+ "._244:\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ "._242:\n"
+ " ldrh r1, [r3, #0x30]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._247 @cond_branch\n"
+ " ldr r1, ._248\n"
+ " ldrb r0, [r1, #0x3]\n"
+ " cmp r0, #0x1\n"
+ " bhi ._247 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ "._243:\n"
+ " strb r0, [r1, #0x3]\n"
+ " ldr r1, ._248 + 4\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._248 + 8\n"
+ "._229:\n"
+ " str r1, [r0]\n"
+ "._247:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._249:\n"
+ " .align 2, 0\n"
+ "._248:\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word gTasks\n"
+ " .word debug_80C48A0+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C4A60()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " ldr r0, ._250\n"
+ " ldrb r0, [r0, #0x5]\n"
+ " lsl r0, r0, #0x19\n"
+ " mov r1, #0xc0\n"
+ " lsl r1, r1, #0x12\n"
+ " add r0, r0, r1\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r1, #0x1\n"
+ " str r1, [sp]\n"
+ " mov r1, #0x10\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0xe\n"
+ " bl debug_80C38E4\n"
+ " ldr r1, ._250 + 4\n"
+ " ldr r2, ._250 + 8\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " ldr r2, ._250 + 12\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._250 + 16\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._250 + 20\n"
+ " str r1, [r0]\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._251:\n"
+ " .align 2, 0\n"
+ "._250:\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word 0x4000042\n"
+ " .word 0x79ef\n"
+ " .word 0x17f\n"
+ " .word gTasks\n"
+ " .word debug_80C4AC4+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C4AC4()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " ldr r7, ._255\n"
+ " ldrb r0, [r7, #0x4]\n"
+ " mov ip, r0\n"
+ " ldrb r5, [r7, #0x5]\n"
+ " mov r1, ip\n"
+ " add r0, r1, r5\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r1, r0, #0x18\n"
+ " ldr r2, ._255 + 4\n"
+ " mov r8, r2\n"
+ " ldrh r2, [r2, #0x2e]\n"
+ " mov r3, #0x1\n"
+ " and r3, r3, r2\n"
+ " add r4, r7, #0\n"
+ " cmp r3, #0\n"
+ " beq ._252 @cond_branch\n"
+ " ldr r0, ._255 + 8\n"
+ " lsl r1, r1, #0x3\n"
+ " add r0, r0, #0x4\n"
+ " add r1, r1, r0\n"
+ " ldr r1, [r1]\n"
+ " ldr r3, ._255 + 12\n"
+ " ldr r2, [r3]\n"
+ " add r0, r2, #0\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._253 @cond_branch\n"
+ " ldr r0, ._255 + 16\n"
+ " eor r1, r1, r0\n"
+ " and r2, r2, r1\n"
+ " b ._254\n"
+ "._256:\n"
+ " .align 2, 0\n"
+ "._255:\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word gMain\n"
+ " .word gUnknown_Debug_083F80D8\n"
+ " .word byte_3005E30\n"
+ " .word 0xffff\n"
+ "._253:\n"
+ " orr r2, r2, r1\n"
+ "._254:\n"
+ " str r2, [r3]\n"
+ " ldrb r0, [r4, #0x4]\n"
+ " bl debug_80C4C44\n"
+ " ldr r1, ._258\n"
+ " lsl r0, r6, #0x2\n"
+ " add r0, r0, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._258 + 4\n"
+ " str r1, [r0]\n"
+ " b ._274\n"
+ "._259:\n"
+ " .align 2, 0\n"
+ "._258:\n"
+ " .word gTasks\n"
+ " .word debug_80C4A60+1\n"
+ "._252:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r2\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r4, r0, #0x10\n"
+ " cmp r4, #0\n"
+ " beq ._260 @cond_branch\n"
+ " str r3, [sp]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x10\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0xe\n"
+ " bl debug_80C38E4\n"
+ " ldr r0, ._262\n"
+ " lsl r1, r6, #0x2\n"
+ " add r1, r1, r6\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._262 + 4\n"
+ " b ._261\n"
+ "._263:\n"
+ " .align 2, 0\n"
+ "._262:\n"
+ " .word gTasks\n"
+ " .word debug_80C48A0+1\n"
+ "._260:\n"
+ " mov r0, #0x8\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._264 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r1, ._266\n"
+ " mov r2, #0x80\n"
+ " lsl r2, r2, #0x3\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._266 + 4\n"
+ " ldrb r2, [r1, #0x1]\n"
+ " mov r0, #0x11\n"
+ " neg r0, r0\n"
+ " and r0, r0, r2\n"
+ " strb r0, [r1, #0x1]\n"
+ " mov r0, #0xac\n"
+ " strb r0, [r1, #0x2]\n"
+ " mov r0, #0xff\n"
+ " strb r0, [r1, #0x3]\n"
+ " strb r4, [r1, #0x9]\n"
+ " strb r4, [r1, #0xa]\n"
+ " strb r4, [r1, #0xb]\n"
+ " strb r4, [r1, #0xc]\n"
+ " ldr r1, ._266 + 8\n"
+ " lsl r0, r6, #0x2\n"
+ " add r0, r0, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._266 + 12\n"
+ " str r1, [r0]\n"
+ " b ._274\n"
+ "._267:\n"
+ " .align 2, 0\n"
+ "._266:\n"
+ " .word gTrainerBattleOpponent\n"
+ " .word +0x2017000\n"
+ " .word gTasks\n"
+ " .word debug_80C4F48+1\n"
+ "._264:\n"
+ " mov r0, r8\n"
+ " ldrh r1, [r0, #0x30]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._268 @cond_branch\n"
+ " lsl r0, r5, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._269 @cond_branch\n"
+ " sub r0, r5, #1\n"
+ " strb r0, [r7, #0x5]\n"
+ " b ._277\n"
+ "._269:\n"
+ " mov r1, ip\n"
+ " lsl r0, r1, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._277 @cond_branch\n"
+ " mov r0, ip\n"
+ " sub r0, r0, #0x1\n"
+ " b ._272\n"
+ "._268:\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._274 @cond_branch\n"
+ " lsl r0, r5, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x8\n"
+ " bhi ._274 @cond_branch\n"
+ " cmp r0, #0x4\n"
+ " bhi ._275 @cond_branch\n"
+ " add r0, r5, #1\n"
+ " strb r0, [r7, #0x5]\n"
+ " b ._277\n"
+ "._275:\n"
+ " mov r2, ip\n"
+ " lsl r0, r2, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x3\n"
+ " bhi ._277 @cond_branch\n"
+ " mov r0, ip\n"
+ " add r0, r0, #0x1\n"
+ "._272:\n"
+ " strb r0, [r7, #0x4]\n"
+ " ldrb r0, [r7, #0x4]\n"
+ " bl debug_80C4C44\n"
+ "._277:\n"
+ " ldr r0, ._278\n"
+ " lsl r1, r6, #0x2\n"
+ " add r1, r1, r6\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._278 + 4\n"
+ "._261:\n"
+ " str r0, [r1]\n"
+ "._274:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._279:\n"
+ " .align 2, 0\n"
+ "._278:\n"
+ " .word gTasks\n"
+ " .word debug_80C4A60+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C4C44()
+{
+ 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, #0xfffffff0\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov sl, r0\n"
+ " mov r2, #0x0\n"
+ " mov r5, sp\n"
+ "._290:\n"
+ " mov r0, sl\n"
+ " add r6, r2, r0\n"
+ " add r4, r6, #0\n"
+ " add r1, r2, #1\n"
+ " mov r8, r1\n"
+ " cmp r4, #0x9\n"
+ " bgt ._280 @cond_branch\n"
+ " mov r3, #0x0\n"
+ " ldr r1, ._288\n"
+ " lsl r0, r4, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " ldrb r0, [r0]\n"
+ " ldr r7, ._288 + 4\n"
+ " mov r9, r7\n"
+ " lsl r2, r2, #0x1\n"
+ " mov ip, r2\n"
+ " cmp r0, #0xff\n"
+ " beq ._282 @cond_branch\n"
+ " add r7, r1, #0\n"
+ "._283:\n"
+ " add r0, r3, #3\n"
+ " mov r1, sp\n"
+ " add r2, r1, r0\n"
+ " lsl r1, r6, #0x3\n"
+ " add r1, r1, r7\n"
+ " ldr r0, [r1]\n"
+ " add r0, r0, r3\n"
+ " ldrb r0, [r0]\n"
+ " strb r0, [r2]\n"
+ " add r0, r3, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r3, r0, #0x18\n"
+ " ldr r0, [r1]\n"
+ " add r0, r0, r3\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0xff\n"
+ " beq ._282 @cond_branch\n"
+ " cmp r3, #0xb\n"
+ " bls ._283 @cond_branch\n"
+ "._282:\n"
+ " cmp r3, #0xb\n"
+ " bhi ._284 @cond_branch\n"
+ " mov r1, #0x0\n"
+ "._285:\n"
+ " add r0, r3, #3\n"
+ " add r0, r0, sp\n"
+ " strb r1, [r0]\n"
+ " add r0, r3, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r3, r0, #0x18\n"
+ " cmp r3, #0xb\n"
+ " bls ._285 @cond_branch\n"
+ "._284:\n"
+ " mov r0, #0xff\n"
+ " strb r0, [r5, #0xe]\n"
+ " mov r0, #0xfc\n"
+ " strb r0, [r5]\n"
+ " mov r2, #0x1\n"
+ " strb r2, [r5, #0x1]\n"
+ " add r1, r2, #0\n"
+ " LSL r1, r4\n"
+ " mov r3, r9\n"
+ " ldr r0, [r3]\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._286 @cond_branch\n"
+ " mov r0, #0x3\n"
+ " strb r0, [r5, #0x2]\n"
+ " b ._287\n"
+ "._289:\n"
+ " .align 2, 0\n"
+ "._288:\n"
+ " .word gUnknown_Debug_083F80D8\n"
+ " .word byte_3005E30\n"
+ "._286:\n"
+ " strb r2, [r5, #0x2]\n"
+ "._287:\n"
+ " mov r2, ip\n"
+ " add r2, r2, #0x3\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r2, r2, #0x18\n"
+ " mov r0, sp\n"
+ " mov r1, #0x11\n"
+ " bl MenuPrint\n"
+ "._280:\n"
+ " mov r7, r8\n"
+ " lsl r0, r7, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " cmp r2, #0x5\n"
+ " bls ._290 @cond_branch\n"
+ " add sp, sp, #0x10\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"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C4D14()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add sp, sp, #0xffffffd0\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " ldr r1, ._291\n"
+ " mov r0, sp\n"
+ " mov r2, #0xf\n"
+ " bl memcpy\n"
+ " add r5, sp, #0x10\n"
+ " ldr r1, ._291 + 4\n"
+ " add r0, r5, #0\n"
+ " mov r2, #0xd\n"
+ " bl memcpy\n"
+ " add r6, sp, #0x20\n"
+ " ldr r1, ._291 + 8\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0xf\n"
+ " bl memcpy\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x10\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r0, sp\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x11\n"
+ " bl MenuPrint\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0x11\n"
+ " bl MenuPrint\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xe\n"
+ " mov r3, #0xf\n"
+ " bl MenuDrawTextWindow\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._291 + 12\n"
+ " ldrb r0, [r0, #0x6]\n"
+ " bl debug_80C4F00\n"
+ " mov r0, #0xf\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0xf\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r1, ._291 + 16\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._291 + 20\n"
+ " str r1, [r0]\n"
+ " add sp, sp, #0x30\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._292:\n"
+ " .align 2, 0\n"
+ "._291:\n"
+ " .word gUnknown_Debug_083F81C7\n"
+ " .word gUnknown_Debug_083F81F5\n"
+ " .word gUnknown_Debug_083F8202\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word gTasks\n"
+ " .word debug_80C4DB8+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C4DB8()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " ldr r0, ._293\n"
+ " ldrb r0, [r0, #0x7]\n"
+ " lsl r0, r0, #0x19\n"
+ " mov r1, #0xc0\n"
+ " lsl r1, r1, #0x12\n"
+ " add r0, r0, r1\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r1, #0x1\n"
+ " str r1, [sp]\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0xe\n"
+ " bl debug_80C38E4\n"
+ " ldr r1, ._293 + 4\n"
+ " ldr r2, ._293 + 8\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " add r2, r2, #0x8\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._293 + 12\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._293 + 16\n"
+ " str r1, [r0]\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._294:\n"
+ " .align 2, 0\n"
+ "._293:\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word 0x4000042\n"
+ " .word 0x177\n"
+ " .word gTasks\n"
+ " .word debug_80C4E18+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C4E18()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " ldr r5, ._297\n"
+ " ldrb r3, [r5, #0x6]\n"
+ " ldrb r2, [r5, #0x7]\n"
+ " add r0, r3, r2\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " ldr r7, ._297 + 4\n"
+ " ldrh r1, [r7, #0x2e]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._295 @cond_branch\n"
+ " ldr r0, ._297 + 8\n"
+ " lsl r1, r4, #0x2\n"
+ " add r1, r1, r4\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._297 + 12\n"
+ " b ._296\n"
+ "._298:\n"
+ " .align 2, 0\n"
+ "._297:\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word gMain\n"
+ " .word gTasks\n"
+ " .word debug_80C42B8+1\n"
+ "._295:\n"
+ " mov r0, #0x8\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._299 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._300 @cond_branch\n"
+ "._299:\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r2, ._302\n"
+ " ldr r1, ._302 + 4\n"
+ " lsl r0, r6, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0, #0x4]\n"
+ " strb r0, [r2]\n"
+ " ldr r1, ._302 + 8\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._302 + 12\n"
+ " str r1, [r0]\n"
+ " b ._310\n"
+ "._303:\n"
+ " .align 2, 0\n"
+ "._302:\n"
+ " .word gBattleTerrain\n"
+ " .word gUnknown_Debug_083F814C\n"
+ " .word gTasks\n"
+ " .word debug_80C5158+1\n"
+ "._300:\n"
+ " ldrh r1, [r7, #0x30]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._304 @cond_branch\n"
+ " lsl r0, r2, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._305 @cond_branch\n"
+ " sub r0, r2, #1\n"
+ " strb r0, [r5, #0x7]\n"
+ " b ._313\n"
+ "._305:\n"
+ " lsl r0, r3, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._313 @cond_branch\n"
+ " sub r0, r3, #1\n"
+ " b ._308\n"
+ "._304:\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._310 @cond_branch\n"
+ " lsl r0, r2, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x7\n"
+ " bhi ._310 @cond_branch\n"
+ " cmp r0, #0x4\n"
+ " bhi ._311 @cond_branch\n"
+ " add r0, r2, #1\n"
+ " strb r0, [r5, #0x7]\n"
+ " b ._313\n"
+ "._311:\n"
+ " lsl r0, r3, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x2\n"
+ " bhi ._313 @cond_branch\n"
+ " add r0, r3, #1\n"
+ "._308:\n"
+ " strb r0, [r5, #0x6]\n"
+ " ldrb r0, [r5, #0x6]\n"
+ " bl debug_80C4F00\n"
+ "._313:\n"
+ " ldr r0, ._314\n"
+ " lsl r1, r4, #0x2\n"
+ " add r1, r1, r4\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._314 + 4\n"
+ "._296:\n"
+ " str r0, [r1]\n"
+ "._310:\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._315:\n"
+ " .align 2, 0\n"
+ "._314:\n"
+ " .word gTasks\n"
+ " .word debug_80C4DB8+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C4F00()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x3\n"
+ " mov r2, #0xd\n"
+ " mov r3, #0xe\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " mov r4, #0x0\n"
+ " ldr r6, ._318\n"
+ "._317:\n"
+ " cmp r4, #0x8\n"
+ " bhi ._316 @cond_branch\n"
+ " add r0, r4, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r6\n"
+ " ldr r0, [r0]\n"
+ " lsl r2, r4, #0x19\n"
+ " mov r1, #0xc0\n"
+ " lsl r1, r1, #0x12\n"
+ " add r2, r2, r1\n"
+ " lsr r2, r2, #0x18\n"
+ " mov r1, #0x2\n"
+ " bl MenuPrint\n"
+ "._316:\n"
+ " add r0, r4, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " cmp r4, #0x5\n"
+ " bls ._317 @cond_branch\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._319:\n"
+ " .align 2, 0\n"
+ "._318:\n"
+ " .word gUnknown_Debug_083F814C\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C4F48()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5, r6}\n"
+ " add sp, sp, #0xffffffc4\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " ldr r1, ._320\n"
+ " mov r0, sp\n"
+ " mov r2, #0x11\n"
+ " bl memcpy\n"
+ " add r6, sp, #0x14\n"
+ " ldr r1, ._320 + 4\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0xd\n"
+ " bl memcpy\n"
+ " add r5, sp, #0x24\n"
+ " ldr r1, ._320 + 8\n"
+ " add r0, r5, #0\n"
+ " mov r2, #0xd\n"
+ " bl memcpy\n"
+ " add r0, sp, #0x34\n"
+ " mov r9, r0\n"
+ " ldr r1, ._320 + 12\n"
+ " mov r2, #0x4\n"
+ " bl memcpy\n"
+ " add r0, sp, #0x38\n"
+ " mov r8, r0\n"
+ " ldr r1, ._320 + 16\n"
+ " mov r2, #0x4\n"
+ " bl memcpy\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x10\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r0, sp\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x11\n"
+ " bl MenuPrint\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0x11\n"
+ " bl MenuPrint\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xe\n"
+ " mov r3, #0xf\n"
+ " bl MenuDrawTextWindow\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x3\n"
+ " mov r2, #0xd\n"
+ " mov r3, #0xe\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " mov r0, r9\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x3\n"
+ " bl MenuPrint\n"
+ " mov r0, r8\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " mov r0, #0xf\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0xf\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r1, ._320 + 20\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._320 + 24\n"
+ " str r1, [r0]\n"
+ " add sp, sp, #0x3c\n"
+ " pop {r3, r4}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._321:\n"
+ " .align 2, 0\n"
+ "._320:\n"
+ " .word gUnknown_Debug_083F8211\n"
+ " .word gUnknown_Debug_083F81A0\n"
+ " .word gUnknown_Debug_083F8222\n"
+ " .word gUnknown_Debug_083F822F\n"
+ " .word gUnknown_Debug_083F8233\n"
+ " .word gTasks\n"
+ " .word debug_80C5038+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C5038()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " ldr r0, ._322\n"
+ " ldrb r0, [r0, #0x8]\n"
+ " lsl r0, r0, #0x19\n"
+ " mov r1, #0xc0\n"
+ " lsl r1, r1, #0x12\n"
+ " add r0, r0, r1\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r1, #0x1\n"
+ " str r1, [sp]\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0xe\n"
+ " bl debug_80C38E4\n"
+ " ldr r1, ._322 + 4\n"
+ " ldr r2, ._322 + 8\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " add r2, r2, #0x8\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._322 + 12\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._322 + 16\n"
+ " str r1, [r0]\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._323:\n"
+ " .align 2, 0\n"
+ "._322:\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word 0x4000042\n"
+ " .word 0x177\n"
+ " .word gTasks\n"
+ " .word debug_80C5098+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C5098()
+{
+ asm(
+ " push {r4, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " ldr r1, ._326\n"
+ " ldrh r2, [r1, #0x2e]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r2\n"
+ " add r3, r1, #0\n"
+ " cmp r0, #0\n"
+ " beq ._324 @cond_branch\n"
+ " ldr r0, ._326 + 4\n"
+ " lsl r1, r4, #0x2\n"
+ " add r1, r1, r4\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._326 + 8\n"
+ " str r0, [r1]\n"
+ " b ._339\n"
+ "._327:\n"
+ " .align 2, 0\n"
+ "._326:\n"
+ " .word gMain\n"
+ " .word gTasks\n"
+ " .word debug_80C47BC+1\n"
+ "._324:\n"
+ " mov r0, #0x8\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " bne ._328 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._329 @cond_branch\n"
+ "._328:\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r1, ._331\n"
+ " ldr r0, ._331 + 4\n"
+ " ldrb r0, [r0, #0x8]\n"
+ " strb r0, [r1, #0x8]\n"
+ " ldr r1, ._331 + 8\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._331 + 12\n"
+ " b ._330\n"
+ "._332:\n"
+ " .align 2, 0\n"
+ "._331:\n"
+ " .word gSaveBlock2\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word gTasks\n"
+ " .word debug_80C42B8+1\n"
+ "._329:\n"
+ " ldrh r1, [r3, #0x30]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._334 @cond_branch\n"
+ " ldr r1, ._336\n"
+ " ldrb r0, [r1, #0x8]\n"
+ " cmp r0, #0\n"
+ " beq ._334 @cond_branch\n"
+ " sub r0, r0, #0x1\n"
+ " b ._335\n"
+ "._337:\n"
+ " .align 2, 0\n"
+ "._336:\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ "._334:\n"
+ " ldrh r1, [r3, #0x30]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._339 @cond_branch\n"
+ " ldr r1, ._340\n"
+ " ldrb r0, [r1, #0x8]\n"
+ " cmp r0, #0\n"
+ " bne ._339 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ "._335:\n"
+ " strb r0, [r1, #0x8]\n"
+ " ldr r1, ._340 + 4\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._340 + 8\n"
+ "._330:\n"
+ " str r1, [r0]\n"
+ "._339:\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._341:\n"
+ " .align 2, 0\n"
+ "._340:\n"
+ " .word unk_debug_ewram_0+0x20\n"
+ " .word gTasks\n"
+ " .word debug_80C5038+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C5158()
+{
+ asm(
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r2, ._342\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r2\n"
+ " ldr r0, ._342 + 4\n"
+ " str r0, [r1]\n"
+ " bx lr\n"
+ "._343:\n"
+ " .align 2, 0\n"
+ "._342:\n"
+ " .word gTasks\n"
+ " .word debug_80C5174+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C5174()
+{
+ asm(
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r2, ._344\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r2\n"
+ " ldr r0, ._344 + 4\n"
+ " str r0, [r1]\n"
+ " bx lr\n"
+ "._345:\n"
+ " .align 2, 0\n"
+ "._344:\n"
+ " .word gTasks\n"
+ " .word debug_80C5190+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C5190()
+{
+ asm(
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r2, ._346\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r2\n"
+ " ldr r0, ._346 + 4\n"
+ " str r0, [r1]\n"
+ " bx lr\n"
+ "._347:\n"
+ " .align 2, 0\n"
+ "._346:\n"
+ " .word gTasks\n"
+ " .word debug_80C51AC+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C51AC()
+{
+ asm(
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r2, ._348\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r2\n"
+ " ldr r0, ._348 + 4\n"
+ " str r0, [r1]\n"
+ " bx lr\n"
+ "._349:\n"
+ " .align 2, 0\n"
+ "._348:\n"
+ " .word gTasks\n"
+ " .word debug_80C51C8+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C51C8()
+{
+ asm(
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r2, ._350\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r2\n"
+ " ldr r0, ._350 + 4\n"
+ " str r0, [r1]\n"
+ " bx lr\n"
+ "._351:\n"
+ " .align 2, 0\n"
+ "._350:\n"
+ " .word gTasks\n"
+ " .word debug_80C51E4+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C51E4()
+{
+ asm(
+ " push {lr}\n"
+ " bl sub_80408BC\n"
+ " ldr r0, ._352\n"
+ " ldr r1, ._352 + 4\n"
+ " str r1, [r0, #0x8]\n"
+ " ldr r0, ._352 + 8\n"
+ " bl SetMainCallback2\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._353:\n"
+ " .align 2, 0\n"
+ "._352:\n"
+ " .word gMain\n"
+ " .word debug_80C41A8+1\n"
+ " .word unref_sub_800D684+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C5208()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " ldr r1, ._355\n"
+ " ldr r0, ._355 + 4\n"
+ " str r0, [r1]\n"
+ " mov r3, #0x0\n"
+ " add r6, r1, #0\n"
+ " ldr r4, ._355 + 8\n"
+ " add r5, r6, #0\n"
+ " mov r2, #0x0\n"
+ "._354:\n"
+ " ldr r0, [r5]\n"
+ " lsl r1, r3, #0x2\n"
+ " add r0, r0, #0x64\n"
+ " add r0, r0, r1\n"
+ " str r2, [r0]\n"
+ " add r0, r3, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r3, r0, #0x10\n"
+ " cmp r3, #0x3f\n"
+ " bls ._354 @cond_branch\n"
+ " ldr r2, [r6]\n"
+ " mov r0, #0xfc\n"
+ " str r0, [r2, #0x64]\n"
+ " ldrb r1, [r4, #0xa]\n"
+ " ldrb r0, [r4, #0xb]\n"
+ " lsl r0, r0, #0x8\n"
+ " orr r1, r1, r0\n"
+ " ldrb r0, [r4, #0xc]\n"
+ " lsl r0, r0, #0x10\n"
+ " orr r1, r1, r0\n"
+ " ldrb r0, [r4, #0xd]\n"
+ " lsl r0, r0, #0x18\n"
+ " orr r1, r1, r0\n"
+ " str r1, [r2, #0x70]\n"
+ " bl Random\n"
+ " add r4, r0, #0\n"
+ " bl Random\n"
+ " ldr r1, [r6]\n"
+ " lsl r4, r4, #0x10\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " orr r4, r4, r0\n"
+ " str r4, [r1, #0x74]\n"
+ " mov r0, #0x1\n"
+ " str r0, [r1, #0x68]\n"
+ " str r0, [r1, #0x6c]\n"
+ " bl debug_80C5C94\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._356:\n"
+ " .align 2, 0\n"
+ "._355:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word +0x2018000\n"
+ " .word gSaveBlock2\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C527C()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " add r6, r0, #0\n"
+ " mov r5, #0x0\n"
+ " ldr r7, ._359\n"
+ "._361:\n"
+ " mov r0, #0x64\n"
+ " add r1, r5, #0\n"
+ " mul r1, r1, r0\n"
+ " ldr r0, ._359 + 4\n"
+ " add r4, r1, r0\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0xb\n"
+ " mov r2, #0x0\n"
+ " bl GetMonData\n"
+ " cmp r0, #0\n"
+ " bne ._357 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " add r1, r6, #0\n"
+ " mov r2, #0x64\n"
+ " bl memcpy\n"
+ " add r0, r5, #1\n"
+ " strb r0, [r7]\n"
+ " mov r0, #0x0\n"
+ " b ._358\n"
+ "._360:\n"
+ " .align 2, 0\n"
+ "._359:\n"
+ " .word gPlayerPartyCount\n"
+ " .word gPlayerParty\n"
+ "._357:\n"
+ " add r0, r5, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " cmp r5, #0x5\n"
+ " bls ._361 @cond_branch\n"
+ " ldr r0, ._362\n"
+ " ldr r0, [r0]\n"
+ " bl SendMonToPC\n"
+ " mov r0, #0x1\n"
+ "._358:\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._363:\n"
+ " .align 2, 0\n"
+ "._362:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void InitCreatePokemon()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add sp, sp, #0xffffffd4\n"
+ " ldr r1, ._364\n"
+ " add r0, sp, #0x4\n"
+ " mov r2, #0x25\n"
+ " bl memcpy\n"
+ " bl debug_80C35DC\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " mov r4, #0x0\n"
+ " str r4, [sp]\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x10\n"
+ " mov r3, #0x0\n"
+ " bl BeginNormalPaletteFade\n"
+ " ldr r0, ._364 + 4\n"
+ " mov r5, #0x0\n"
+ " strh r4, [r0]\n"
+ " add r0, r0, #0x2\n"
+ " strh r4, [r0]\n"
+ " add r0, r0, #0x2\n"
+ " strh r4, [r0]\n"
+ " ldr r3, ._364 + 8\n"
+ " ldrh r2, [r3]\n"
+ " strh r4, [r3]\n"
+ " ldr r4, ._364 + 12\n"
+ " ldrh r0, [r4]\n"
+ " mov r1, #0x1\n"
+ " orr r0, r0, r1\n"
+ " strh r0, [r4]\n"
+ " strh r2, [r3]\n"
+ " ldr r2, ._364 + 16\n"
+ " ldrh r0, [r2]\n"
+ " mov r1, #0x8\n"
+ " orr r0, r0, r1\n"
+ " strh r0, [r2]\n"
+ " ldr r0, ._364 + 20\n"
+ " bl SetVBlankCallback\n"
+ " ldr r0, ._364 + 24\n"
+ " bl SetMainCallback2\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x3\n"
+ " bl MenuDrawTextWindow\n"
+ " add r0, sp, #0x4\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\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 r0, ._364 + 28\n"
+ " mov r1, #0x0\n"
+ " bl CreateTask\n"
+ " bl debug_80C5208\n"
+ " ldr r1, ._364 + 32\n"
+ " ldr r0, [r1]\n"
+ " mov r2, #0xb4\n"
+ " lsl r2, r2, #0x1\n"
+ " add r0, r0, r2\n"
+ " strb r5, [r0]\n"
+ " ldr r0, [r1]\n"
+ " ldr r1, ._364 + 36\n"
+ " add r0, r0, r1\n"
+ " strb r5, [r0]\n"
+ " add sp, sp, #0x2c\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._365:\n"
+ " .align 2, 0\n"
+ "._364:\n"
+ " .word gUnknown_Debug_083F8733\n"
+ " .word 0x4000050\n"
+ " .word 0x4000208\n"
+ " .word 0x4000200\n"
+ " .word 0x4000004\n"
+ " .word debug_80C3758+1\n"
+ " .word debug_80C370C+1\n"
+ " .word debug_80C53A4+1\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word 0x169\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C53A4()
+{
+ asm(
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r2, ._366\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r2\n"
+ " ldr r0, ._366 + 4\n"
+ " str r0, [r1]\n"
+ " bx lr\n"
+ "._367:\n"
+ " .align 2, 0\n"
+ "._366:\n"
+ " .word gTasks\n"
+ " .word debug_80C53C0+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C53C0()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " bl debug_80C6384\n"
+ " mov r0, #0x0\n"
+ " bl debug_80C627C\n"
+ " ldr r1, ._368\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._368 + 4\n"
+ " str r1, [r0]\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._369:\n"
+ " .align 2, 0\n"
+ "._368:\n"
+ " .word gTasks\n"
+ " .word debug_80C53F0+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C53F0()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " ldr r0, ._372\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r2, #0x1\n"
+ " and r2, r2, r1\n"
+ " add r4, r0, #0\n"
+ " cmp r2, #0\n"
+ " beq ._370 @cond_branch\n"
+ " ldr r0, ._372 + 4\n"
+ " ldr r3, [r0]\n"
+ " mov r0, #0xb2\n"
+ " lsl r0, r0, #0x1\n"
+ " add r2, r3, r0\n"
+ " ldr r1, ._372 + 8\n"
+ " mov r4, #0xb4\n"
+ " lsl r4, r4, #0x1\n"
+ " add r0, r3, r4\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r6, ._372 + 12\n"
+ " add r1, r3, r6\n"
+ " ldrb r1, [r1]\n"
+ " ldr r0, [r0]\n"
+ " add r0, r0, r1\n"
+ " ldrb r1, [r0]\n"
+ " lsl r1, r1, #0x2\n"
+ " add r0, r3, #0\n"
+ " add r0, r0, #0x64\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " str r0, [r2]\n"
+ " mov r0, #0xb5\n"
+ " lsl r0, r0, #0x1\n"
+ " add r1, r3, r0\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ " bl debug_80C643C\n"
+ " ldr r1, ._372 + 16\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._372 + 20\n"
+ " b ._375\n"
+ "._373:\n"
+ " .align 2, 0\n"
+ "._372:\n"
+ " .word gMain\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word gUnknown_Debug_083F8698\n"
+ " .word 0x169\n"
+ " .word gTasks\n"
+ " .word debug_80C55E4+1\n"
+ "._370:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._374 @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 r0, ._376\n"
+ " bl SetMainCallback2\n"
+ " ldr r1, ._376 + 4\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._376 + 8\n"
+ " b ._375\n"
+ "._377:\n"
+ " .align 2, 0\n"
+ "._376:\n"
+ " .word debug_80C370C+1\n"
+ " .word gTasks\n"
+ " .word debug_80C373C+1\n"
+ "._374:\n"
+ " mov r0, #0x8\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._378 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " bl debug_80C5FFC\n"
+ " ldr r0, ._381\n"
+ " ldr r0, [r0]\n"
+ " bl debug_80C527C\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " mov r0, #0x3\n"
+ " mov r1, #0x8\n"
+ " mov r2, #0x1a\n"
+ " mov r3, #0xb\n"
+ " bl MenuDrawTextWindow\n"
+ " cmp r4, #0\n"
+ " beq ._379 @cond_branch\n"
+ " ldr r0, ._381 + 4\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0x9\n"
+ " bl MenuPrint\n"
+ " b ._380\n"
+ "._382:\n"
+ " .align 2, 0\n"
+ "._381:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word gUnknown_Debug_083F872A\n"
+ "._379:\n"
+ " ldr r0, ._384\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0x9\n"
+ " bl MenuPrint\n"
+ "._380:\n"
+ " ldr r0, ._384 + 4\n"
+ " lsl r1, r5, #0x2\n"
+ " add r1, r1, r5\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._384 + 8\n"
+ " str r0, [r1]\n"
+ " b ._400\n"
+ "._385:\n"
+ " .align 2, 0\n"
+ "._384:\n"
+ " .word gUnknown_Debug_083F8720\n"
+ " .word gTasks\n"
+ " .word debug_80C5708+1\n"
+ "._378:\n"
+ " mov r0, #0x4\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._386 @cond_branch\n"
+ " ldr r0, ._388\n"
+ " ldr r0, [r0]\n"
+ " ldr r4, [r0, #0x64]\n"
+ " lsl r4, r4, #0x10\n"
+ " lsr r4, r4, #0x10\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x2\n"
+ " bl GetNationalPokedexFlag\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x3\n"
+ " bl GetNationalPokedexFlag\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " b ._400\n"
+ "._389:\n"
+ " .align 2, 0\n"
+ "._388:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ "._386:\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._390 @cond_branch\n"
+ " mov r0, #0x2\n"
+ " bl debug_80C627C\n"
+ " b ._400\n"
+ "._390:\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r3, r0, #0x10\n"
+ " cmp r3, #0\n"
+ " beq ._392 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " bl debug_80C627C\n"
+ " b ._400\n"
+ "._392:\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._395 @cond_branch\n"
+ " ldr r2, ._397\n"
+ " ldr r0, [r2]\n"
+ " mov r6, #0xb4\n"
+ " lsl r6, r6, #0x1\n"
+ " add r1, r0, r6\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " beq ._395 @cond_branch\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " ldr r0, [r2]\n"
+ " ldr r1, ._397 + 4\n"
+ " add r0, r0, r1\n"
+ " strb r3, [r0]\n"
+ " b ._396\n"
+ "._398:\n"
+ " .align 2, 0\n"
+ "._397:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word 0x169\n"
+ "._395:\n"
+ " ldrh r1, [r4, #0x2e]\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._400 @cond_branch\n"
+ " ldr r3, ._401\n"
+ " ldr r0, [r3]\n"
+ " mov r4, #0xb4\n"
+ " lsl r4, r4, #0x1\n"
+ " add r2, r0, r4\n"
+ " ldrb r0, [r2]\n"
+ " cmp r0, #0x4\n"
+ " bhi ._400 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " mov r1, #0x0\n"
+ " strb r0, [r2]\n"
+ " ldr r0, [r3]\n"
+ " ldr r6, ._401 + 4\n"
+ " add r0, r0, r6\n"
+ " strb r1, [r0]\n"
+ "._396:\n"
+ " ldr r1, ._401 + 8\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._401 + 12\n"
+ "._375:\n"
+ " str r1, [r0]\n"
+ "._400:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._402:\n"
+ " .align 2, 0\n"
+ "._401:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word 0x169\n"
+ " .word gTasks\n"
+ " .word debug_80C53C0+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C55E4()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r3, r0, #0x18\n"
+ " add r6, r3, #0\n"
+ " ldr r1, ._405\n"
+ " ldr r2, ._405 + 4\n"
+ " ldr r0, [r2]\n"
+ " mov ip, r0\n"
+ " mov r0, #0xb4\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r0, ip\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._405 + 8\n"
+ " add r1, r1, ip\n"
+ " ldrb r1, [r1]\n"
+ " ldr r0, [r0]\n"
+ " add r0, r0, r1\n"
+ " ldrb r5, [r0]\n"
+ " add r7, r5, #0\n"
+ " ldr r1, ._405 + 12\n"
+ " ldrh r4, [r1, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r4\n"
+ " mov r8, r2\n"
+ " add r2, r1, #0\n"
+ " cmp r0, #0\n"
+ " beq ._403 @cond_branch\n"
+ " ldr r0, ._405 + 16\n"
+ " lsl r1, r3, #0x2\n"
+ " add r1, r1, r3\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._405 + 20\n"
+ " str r0, [r1]\n"
+ " b ._422\n"
+ "._406:\n"
+ " .align 2, 0\n"
+ "._405:\n"
+ " .word gUnknown_Debug_083F8698\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word 0x169\n"
+ " .word gMain\n"
+ " .word gTasks\n"
+ " .word debug_80C53C0+1\n"
+ "._403:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r4\n"
+ " cmp r0, #0\n"
+ " beq ._407 @cond_branch\n"
+ " lsl r1, r5, #0x2\n"
+ " mov r0, ip\n"
+ " add r0, r0, #0x64\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0xb2\n"
+ " lsl r1, r1, #0x1\n"
+ " add r1, r1, ip\n"
+ " ldr r1, [r1]\n"
+ " str r1, [r0]\n"
+ " ldr r1, ._409\n"
+ " lsl r0, r6, #0x2\n"
+ " add r0, r0, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._409 + 4\n"
+ " str r1, [r0]\n"
+ " b ._422\n"
+ "._410:\n"
+ " .align 2, 0\n"
+ "._409:\n"
+ " .word gTasks\n"
+ " .word debug_80C53C0+1\n"
+ "._407:\n"
+ " ldrh r1, [r2, #0x30]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._411 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " b ._412\n"
+ "._411:\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._413 @cond_branch\n"
+ " mov r0, #0x2\n"
+ "._412:\n"
+ " bl debug_80C6544\n"
+ " bl debug_80C643C\n"
+ " b ._422\n"
+ "._413:\n"
+ " ldr r0, ._419\n"
+ " lsl r1, r7, #0x3\n"
+ " add r0, r0, #0x4\n"
+ " add r1, r1, r0\n"
+ " ldr r1, [r1]\n"
+ " ldrb r0, [r1, #0x9]\n"
+ " cmp r0, #0xff\n"
+ " beq ._422 @cond_branch\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r4\n"
+ " cmp r0, #0\n"
+ " beq ._417 @cond_branch\n"
+ " mov r0, #0xb5\n"
+ " lsl r0, r0, #0x1\n"
+ " add ip, ip, r0\n"
+ " mov r0, ip\n"
+ " ldrb r3, [r0]\n"
+ " ldrb r0, [r1, #0x9]\n"
+ " sub r0, r0, #0x1\n"
+ " cmp r3, r0\n"
+ " bge ._417 @cond_branch\n"
+ " add r0, r3, #1\n"
+ " mov r1, ip\n"
+ " strb r0, [r1]\n"
+ " bl debug_80C643C\n"
+ " b ._422\n"
+ "._420:\n"
+ " .align 2, 0\n"
+ "._419:\n"
+ " .word gUnknown_Debug_083F8554\n"
+ "._417:\n"
+ " ldrh r1, [r2, #0x2e]\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._422 @cond_branch\n"
+ " mov r2, r8\n"
+ " ldr r0, [r2]\n"
+ " mov r2, #0xb5\n"
+ " lsl r2, r2, #0x1\n"
+ " add r1, r0, r2\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " beq ._422 @cond_branch\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " bl debug_80C643C\n"
+ "._422:\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C5708()
+{
+ asm(
+ " push {lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " ldr r0, ._424\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._423 @cond_branch\n"
+ " ldr r0, ._424 + 4\n"
+ " lsl r1, r2, #0x2\n"
+ " add r1, r1, r2\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._424 + 8\n"
+ " str r0, [r1]\n"
+ "._423:\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._425:\n"
+ " .align 2, 0\n"
+ "._424:\n"
+ " .word gMain\n"
+ " .word gTasks\n"
+ " .word debug_80C53C0+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C5738()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r9\n"
+ " mov r6, r8\n"
+ " push {r6, r7}\n"
+ " add r6, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r4, r1, #0x18\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r2, r2, #0x18\n"
+ " mov r8, r2\n"
+ " cmp r4, #0xfe\n"
+ " bne ._426 @cond_branch\n"
+ " ldr r1, ._428\n"
+ " mov r2, #0x7\n"
+ " bl debug_80C689C\n"
+ " add r0, r6, #7\n"
+ " ldr r7, ._428 + 4\n"
+ " ldr r1, [r7]\n"
+ " add r1, r1, #0xf0\n"
+ " ldr r1, [r1]\n"
+ " mov r2, #0x3\n"
+ " mov r3, #0x1\n"
+ " bl debug_80C6678\n"
+ " mov r4, #0x0\n"
+ " strb r4, [r6, #0x13]\n"
+ " strb r4, [r6, #0x14]\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0x15\n"
+ " ldr r1, ._428 + 8\n"
+ " mov r2, #0x7\n"
+ " bl debug_80C689C\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0x1c\n"
+ " ldr r1, [r7]\n"
+ " add r1, r1, #0xf4\n"
+ " ldr r1, [r1]\n"
+ " mov r2, #0x3\n"
+ " mov r3, #0x1\n"
+ " bl debug_80C6678\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0x28\n"
+ " strb r4, [r0]\n"
+ " add r0, r0, #0x1\n"
+ " strb r4, [r0]\n"
+ " add r0, r0, #0x1\n"
+ " ldr r1, ._428 + 12\n"
+ " mov r2, #0x9\n"
+ " bl debug_80C689C\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0x31\n"
+ " ldr r1, [r7]\n"
+ " add r1, r1, #0xf8\n"
+ "._431:\n"
+ " ldr r1, [r1]\n"
+ " mov r2, #0x3\n"
+ " mov r3, #0x1\n"
+ " bl debug_80C6678\n"
+ " b ._517\n"
+ "._429:\n"
+ " .align 2, 0\n"
+ "._428:\n"
+ " .word gUnknown_Debug_083F850A\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word gUnknown_Debug_083F8514\n"
+ " .word gUnknown_Debug_083F851C\n"
+ "._426:\n"
+ " cmp r4, #0xfd\n"
+ " bne ._430 @cond_branch\n"
+ " ldr r1, ._432\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0x9\n"
+ " bl debug_80C689C\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0x9\n"
+ " ldr r7, ._432 + 4\n"
+ " ldr r1, [r7]\n"
+ " add r1, r1, #0xfc\n"
+ " ldr r1, [r1]\n"
+ " mov r2, #0x3\n"
+ " mov r3, #0x1\n"
+ " bl debug_80C6678\n"
+ " mov r4, #0x0\n"
+ " strb r4, [r6, #0x15]\n"
+ " strb r4, [r6, #0x16]\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0x17\n"
+ " ldr r1, ._432 + 8\n"
+ " mov r2, #0x9\n"
+ " bl debug_80C689C\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0x20\n"
+ " ldr r1, [r7]\n"
+ " mov r2, #0x80\n"
+ " lsl r2, r2, #0x1\n"
+ " add r1, r1, r2\n"
+ " ldr r1, [r1]\n"
+ " mov r2, #0x3\n"
+ " mov r3, #0x1\n"
+ " bl debug_80C6678\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0x2c\n"
+ " strb r4, [r0]\n"
+ " add r0, r0, #0x1\n"
+ " strb r4, [r0]\n"
+ " add r0, r0, #0x1\n"
+ " ldr r1, ._432 + 12\n"
+ " mov r2, #0x9\n"
+ " bl debug_80C689C\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0x37\n"
+ " ldr r1, [r7]\n"
+ " mov r3, #0x82\n"
+ " lsl r3, r3, #0x1\n"
+ " add r1, r1, r3\n"
+ " b ._431\n"
+ "._433:\n"
+ " .align 2, 0\n"
+ "._432:\n"
+ " .word gUnknown_Debug_083F8524\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word gUnknown_Debug_083F852D\n"
+ " .word gUnknown_Debug_083F8537\n"
+ "._430:\n"
+ " mov r1, #0x0\n"
+ " lsl r5, r4, #0x3\n"
+ " mov r2, #0x0\n"
+ "._434:\n"
+ " add r0, r6, r1\n"
+ " strb r2, [r0]\n"
+ " add r0, r1, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r1, r0, #0x10\n"
+ " cmp r1, #0xb\n"
+ " bls ._434 @cond_branch\n"
+ " ldr r0, ._437\n"
+ " add r0, r5, r0\n"
+ " ldr r1, [r0]\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0xb\n"
+ " bl debug_80C689C\n"
+ " mov r1, #0xc\n"
+ " mov r2, #0xff\n"
+ "._435:\n"
+ " add r0, r6, r1\n"
+ " strb r2, [r0]\n"
+ " add r0, r1, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r1, r0, #0x10\n"
+ " cmp r1, #0xff\n"
+ " bls ._435 @cond_branch\n"
+ " ldr r0, ._437\n"
+ " add r0, r0, #0x4\n"
+ " add r0, r5, r0\n"
+ " ldr r0, [r0]\n"
+ " ldrb r2, [r0, #0x9]\n"
+ " lsl r0, r2, #0x1a\n"
+ " lsr r5, r0, #0x18\n"
+ " cmp r4, #0x22\n"
+ " bhi ._436 @cond_branch\n"
+ " lsl r0, r4, #0x2\n"
+ " ldr r1, ._437 + 4\n"
+ " add r1, r0, r1\n"
+ " ldr r1, [r1]\n"
+ " add r7, r0, #0\n"
+ " mov pc, r1\n"
+ "._438:\n"
+ " .align 2, 0\n"
+ "._437:\n"
+ " .word gUnknown_Debug_083F8554\n"
+ " .word ._439\n"
+ "._439:\n"
+ " .word ._440\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._445\n"
+ " .word ._446\n"
+ " .word ._450\n"
+ " .word ._450\n"
+ " .word ._450\n"
+ " .word ._450\n"
+ " .word ._451\n"
+ " .word ._452\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._472\n"
+ " .word ._473\n"
+ " .word ._474\n"
+ "._436:\n"
+ " mov r0, #0xff\n"
+ " strb r0, [r6]\n"
+ " b ._517\n"
+ "._440:\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0xa\n"
+ " ldr r1, ._477\n"
+ " mov r9, r1\n"
+ " ldr r1, [r1]\n"
+ " add r1, r1, #0x64\n"
+ " add r1, r1, r7\n"
+ " ldr r1, [r1]\n"
+ " mov r3, r8\n"
+ " bl debug_80C6678\n"
+ " add r1, r5, r6\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1, #0xa]\n"
+ " mov r0, #0xfc\n"
+ " strb r0, [r1, #0xb]\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1, #0xc]\n"
+ " mov r2, r8\n"
+ " strb r2, [r1, #0xd]\n"
+ " add r4, r5, #0\n"
+ " add r4, r4, #0xe\n"
+ " add r4, r6, r4\n"
+ " mov r3, r9\n"
+ " ldr r0, [r3]\n"
+ " add r0, r0, #0x64\n"
+ " add r0, r0, r7\n"
+ " ldrh r0, [r0]\n"
+ " bl NationalPokedexNumToSpecies\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " mov r1, #0xb\n"
+ " mul r1, r1, r0\n"
+ " ldr r0, ._477 + 4\n"
+ " add r1, r1, r0\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0xa\n"
+ " bl debug_80C689C\n"
+ " b ._517\n"
+ "._478:\n"
+ " .align 2, 0\n"
+ "._477:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word gSpeciesNames\n"
+ "._445:\n"
+ " ldr r0, ._483\n"
+ " ldr r0, [r0]\n"
+ " add r0, r0, #0x64\n"
+ " add r0, r0, r7\n"
+ " ldr r0, [r0]\n"
+ " cmp r0, #0x1\n"
+ " beq ._479 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bcc ._480 @cond_branch\n"
+ " cmp r0, #0x2\n"
+ " beq ._481 @cond_branch\n"
+ " b ._517\n"
+ "._484:\n"
+ " .align 2, 0\n"
+ "._483:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ "._480:\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0xa\n"
+ " ldr r1, ._486\n"
+ " b ._488\n"
+ "._487:\n"
+ " .align 2, 0\n"
+ "._486:\n"
+ " .word gUnknown_Debug_083F8546\n"
+ "._479:\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0xa\n"
+ " ldr r1, ._489\n"
+ " b ._488\n"
+ "._490:\n"
+ " .align 2, 0\n"
+ "._489:\n"
+ " .word gUnknown_Debug_083F8541\n"
+ "._481:\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0xa\n"
+ " ldr r1, ._492\n"
+ "._488:\n"
+ " mov r2, #0x2\n"
+ " bl debug_80C689C\n"
+ " b ._517\n"
+ "._493:\n"
+ " .align 2, 0\n"
+ "._492:\n"
+ " .word gUnknown_Debug_083F8544\n"
+ "._450:\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0xa\n"
+ " ldr r4, ._495\n"
+ " ldr r1, [r4]\n"
+ " add r1, r1, #0x64\n"
+ " add r1, r1, r7\n"
+ " ldr r1, [r1]\n"
+ " mov r3, r8\n"
+ " bl debug_80C6678\n"
+ " add r1, r5, r6\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1, #0xa]\n"
+ " mov r0, #0xfc\n"
+ " strb r0, [r1, #0xb]\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1, #0xc]\n"
+ " mov r0, r8\n"
+ " strb r0, [r1, #0xd]\n"
+ " add r0, r5, #0\n"
+ " add r0, r0, #0xe\n"
+ " add r0, r6, r0\n"
+ " ldr r1, [r4]\n"
+ " add r1, r1, #0x64\n"
+ " add r1, r1, r7\n"
+ " ldr r2, [r1]\n"
+ " mov r1, #0xd\n"
+ " mul r1, r1, r2\n"
+ " ldr r2, ._495 + 4\n"
+ " add r1, r1, r2\n"
+ " b ._494\n"
+ "._496:\n"
+ " .align 2, 0\n"
+ "._495:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word gMoveNames\n"
+ "._451:\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0xa\n"
+ " ldr r4, ._499\n"
+ " ldr r1, [r4]\n"
+ " add r1, r1, #0x64\n"
+ " add r1, r1, r7\n"
+ " ldr r1, [r1]\n"
+ " mov r3, r8\n"
+ " bl debug_80C6678\n"
+ " add r1, r5, r6\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1, #0xa]\n"
+ " mov r0, #0xfc\n"
+ " strb r0, [r1, #0xb]\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1, #0xc]\n"
+ " mov r2, r8\n"
+ " strb r2, [r1, #0xd]\n"
+ " ldr r0, [r4]\n"
+ " add r0, r0, #0x64\n"
+ " add r0, r0, r7\n"
+ " ldr r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._497 @cond_branch\n"
+ " add r4, r5, #0\n"
+ " add r4, r4, #0xe\n"
+ " add r4, r6, r4\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " bl ItemId_GetItem\n"
+ " add r1, r0, #0\n"
+ " add r0, r4, #0\n"
+ " b ._498\n"
+ "._500:\n"
+ " .align 2, 0\n"
+ "._499:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ "._497:\n"
+ " add r0, r5, #0\n"
+ " add r0, r0, #0xe\n"
+ " add r0, r6, r0\n"
+ " ldr r1, ._502\n"
+ "._498:\n"
+ " mov r2, #0x9\n"
+ " bl debug_80C689C\n"
+ " b ._517\n"
+ "._503:\n"
+ " .align 2, 0\n"
+ "._502:\n"
+ " .word gUnknown_Debug_083F8541\n"
+ "._452:\n"
+ " add r6, r6, #0xc\n"
+ " ldr r4, ._505\n"
+ " ldr r0, [r4]\n"
+ " ldr r0, [r0, #0x64]\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " bl NationalPokedexNumToSpecies\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " ldr r1, [r4]\n"
+ " add r1, r1, #0x64\n"
+ " add r1, r1, r7\n"
+ " ldrb r1, [r1]\n"
+ " bl GetAbilityBySpecies\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r1, #0xd\n"
+ " mul r1, r1, r0\n"
+ " ldr r0, ._505 + 4\n"
+ " add r1, r1, r0\n"
+ " add r0, r6, #0\n"
+ "._494:\n"
+ " mov r2, #0xc\n"
+ " bl debug_80C689C\n"
+ " b ._517\n"
+ "._506:\n"
+ " .align 2, 0\n"
+ "._505:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word gAbilityNames\n"
+ "._474:\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0xa\n"
+ " ldr r2, ._508\n"
+ " ldr r1, ._508 + 4\n"
+ " ldr r1, [r1]\n"
+ " add r1, r1, #0x64\n"
+ " add r1, r1, r7\n"
+ " ldr r1, [r1]\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r2\n"
+ " ldr r1, [r1]\n"
+ " b ._514\n"
+ "._509:\n"
+ " .align 2, 0\n"
+ "._508:\n"
+ " .word gUnknown_Debug_083F86E8\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ "._472:\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0xc\n"
+ " ldr r1, ._511\n"
+ " ldr r1, [r1]\n"
+ " add r1, r1, #0x64\n"
+ " add r1, r1, r7\n"
+ " ldr r1, [r1]\n"
+ " mov r3, r8\n"
+ " bl debug_80C6678\n"
+ " b ._517\n"
+ "._512:\n"
+ " .align 2, 0\n"
+ "._511:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ "._473:\n"
+ " ldr r0, ._515\n"
+ " ldr r0, [r0]\n"
+ " add r0, r0, #0x64\n"
+ " add r0, r0, r7\n"
+ " ldr r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._513 @cond_branch\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0xa\n"
+ " ldr r1, ._515 + 4\n"
+ " b ._514\n"
+ "._516:\n"
+ " .align 2, 0\n"
+ "._515:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word gUnknown_Debug_083F854A\n"
+ "._513:\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0xa\n"
+ " ldr r1, ._518\n"
+ "._514:\n"
+ " mov r2, #0x4\n"
+ " bl debug_80C689C\n"
+ " b ._517\n"
+ "._519:\n"
+ " .align 2, 0\n"
+ "._518:\n"
+ " .word gUnknown_Debug_083F854D\n"
+ "._446:\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0xa\n"
+ " ldr r2, ._520\n"
+ " ldr r1, ._520 + 4\n"
+ " ldr r1, [r1]\n"
+ " add r1, r1, #0x64\n"
+ " add r1, r1, r7\n"
+ " ldr r1, [r1]\n"
+ " lsl r1, r1, #0x2\n"
+ " add r1, r1, r2\n"
+ " ldr r1, [r1]\n"
+ " mov r2, #0x5\n"
+ " bl debug_80C689C\n"
+ "._517:\n"
+ " mov r0, #0x0\n"
+ " pop {r3, r4}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._521:\n"
+ " .align 2, 0\n"
+ "._520:\n"
+ " .word gNatureNames\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C5B60()
+{
+ asm(
+ " lsl r0, r0, #0x18\n"
+ " ldr r1, ._522\n"
+ " ldr r1, [r1]\n"
+ " lsr r0, r0, #0x16\n"
+ " add r1, r1, #0x64\n"
+ " add r1, r1, r0\n"
+ " ldr r0, [r1]\n"
+ " bx lr\n"
+ "._523:\n"
+ " .align 2, 0\n"
+ "._522:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C5B74()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add r6, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r2, r1, #0x18\n"
+ " cmp r2, #0x18\n"
+ " bhi ._540 @cond_branch\n"
+ " lsl r0, r2, #0x2\n"
+ " ldr r1, ._526\n"
+ " add r1, r0, r1\n"
+ " ldr r1, [r1]\n"
+ " add r3, r0, #0\n"
+ " mov pc, r1\n"
+ "._527:\n"
+ " .align 2, 0\n"
+ "._526:\n"
+ " .word ._525\n"
+ "._525:\n"
+ " .word ._532\n"
+ " .word ._529\n"
+ " .word ._530\n"
+ " .word ._532\n"
+ " .word ._532\n"
+ " .word ._540\n"
+ " .word ._540\n"
+ " .word ._540\n"
+ " .word ._540\n"
+ " .word ._540\n"
+ " .word ._540\n"
+ " .word ._540\n"
+ " .word ._540\n"
+ " .word ._552\n"
+ " .word ._552\n"
+ " .word ._552\n"
+ " .word ._552\n"
+ " .word ._552\n"
+ " .word ._552\n"
+ " .word ._552\n"
+ " .word ._552\n"
+ " .word ._552\n"
+ " .word ._552\n"
+ " .word ._552\n"
+ " .word ._552\n"
+ "._540:\n"
+ " ldr r0, ._554\n"
+ " ldr r0, [r0]\n"
+ " lsl r1, r2, #0x2\n"
+ " add r0, r0, #0x64\n"
+ " add r0, r0, r1\n"
+ " str r6, [r0]\n"
+ " b ._562\n"
+ "._555:\n"
+ " .align 2, 0\n"
+ "._554:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ "._532:\n"
+ " ldr r0, ._557\n"
+ " ldr r0, [r0]\n"
+ " add r0, r0, #0x64\n"
+ " add r0, r0, r3\n"
+ " str r6, [r0]\n"
+ " bl debug_80C5C94\n"
+ " b ._562\n"
+ "._558:\n"
+ " .align 2, 0\n"
+ "._557:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ "._529:\n"
+ " ldr r4, ._560\n"
+ " ldr r1, [r4]\n"
+ " add r0, r1, #0\n"
+ " add r0, r0, #0x64\n"
+ " add r0, r0, r3\n"
+ " str r6, [r0]\n"
+ " ldr r0, [r1, #0x64]\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " bl NationalPokedexNumToSpecies\n"
+ " ldr r5, [r4]\n"
+ " ldr r4, ._560 + 4\n"
+ " lsl r2, r6, #0x2\n"
+ " ldr r3, ._560 + 8\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " lsl r1, r0, #0x3\n"
+ " sub r1, r1, r0\n"
+ " lsl r1, r1, #0x2\n"
+ " add r1, r1, r3\n"
+ " ldrb r1, [r1, #0x13]\n"
+ " mov r0, #0xca\n"
+ " lsl r0, r0, #0x1\n"
+ " mul r0, r0, r1\n"
+ " add r2, r2, r0\n"
+ " add r2, r2, r4\n"
+ " ldr r0, [r2]\n"
+ " str r0, [r5, #0x6c]\n"
+ " bl debug_80C5C94\n"
+ " b ._562\n"
+ "._561:\n"
+ " .align 2, 0\n"
+ "._560:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word gExperienceTables\n"
+ " .word gBaseStats\n"
+ "._530:\n"
+ " ldr r0, ._563\n"
+ " ldr r0, [r0]\n"
+ " add r0, r0, #0x64\n"
+ " add r0, r0, r3\n"
+ " str r6, [r0]\n"
+ " bl debug_80C5DEC\n"
+ " b ._562\n"
+ "._564:\n"
+ " .align 2, 0\n"
+ "._563:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ "._552:\n"
+ " ldr r0, ._565\n"
+ " ldr r0, [r0]\n"
+ " add r0, r0, #0x64\n"
+ " add r0, r0, r3\n"
+ " str r6, [r0]\n"
+ " bl debug_80C5EF4\n"
+ "._562:\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._566:\n"
+ " .align 2, 0\n"
+ "._565:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C5C94()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add sp, sp, #0xfffffff0\n"
+ " ldr r6, ._567\n"
+ " ldr r2, [r6]\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0x98\n"
+ " ldr r4, [r0]\n"
+ " mov r1, #0x1f\n"
+ " and r4, r4, r1\n"
+ " add r0, r0, #0x8\n"
+ " ldr r0, [r0]\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x5\n"
+ " orr r4, r4, r0\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0xa8\n"
+ " ldr r0, [r0]\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0xa\n"
+ " orr r4, r4, r0\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0xb0\n"
+ " ldr r0, [r0]\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0xf\n"
+ " orr r4, r4, r0\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0xb8\n"
+ " ldr r0, [r0]\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x14\n"
+ " orr r4, r4, r0\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0xc0\n"
+ " ldr r0, [r0]\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x19\n"
+ " orr r4, r4, r0\n"
+ " ldr r0, [r2, #0x64]\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " bl NationalPokedexNumToSpecies\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " ldr r0, [r6]\n"
+ " ldr r2, [r0, #0x68]\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r2, r2, #0x18\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " mov r5, #0x1\n"
+ " str r5, [sp]\n"
+ " ldr r3, [r0, #0x74]\n"
+ " str r3, [sp, #0x4]\n"
+ " str r5, [sp, #0x8]\n"
+ " ldr r3, [r0, #0x70]\n"
+ " str r3, [sp, #0xc]\n"
+ " add r3, r4, #0\n"
+ " bl CreateMon\n"
+ " ldr r0, [r6]\n"
+ " bl GetMonGender\n"
+ " ldr r1, [r6]\n"
+ " add r0, r0, #0x2\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " str r0, [r1, #0x78]\n"
+ " add r0, r1, #0\n"
+ " bl GetNature\n"
+ " ldr r1, [r6]\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " str r0, [r1, #0x7c]\n"
+ " add r0, r1, #0\n"
+ " mov r1, #0xd\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r6]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0x80\n"
+ " str r2, [r1]\n"
+ " mov r1, #0xe\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r6]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0x84\n"
+ " str r2, [r1]\n"
+ " mov r1, #0xf\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r6]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0x88\n"
+ " str r2, [r1]\n"
+ " mov r1, #0x10\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r6]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0x8c\n"
+ " str r2, [r1]\n"
+ " mov r1, #0x19\n"
+ " bl GetMonData\n"
+ " add r1, r0, #0\n"
+ " ldr r0, [r6]\n"
+ " str r1, [r0, #0x6c]\n"
+ " mov r1, #0x3a\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r6]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0xf0\n"
+ " str r2, [r1]\n"
+ " mov r1, #0x3b\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r6]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0xf4\n"
+ " str r2, [r1]\n"
+ " mov r1, #0x3c\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r6]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0xf8\n"
+ " str r2, [r1]\n"
+ " mov r1, #0x3d\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r6]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0xfc\n"
+ " str r2, [r1]\n"
+ " mov r1, #0x3e\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r6]\n"
+ " mov r3, #0x80\n"
+ " lsl r3, r3, #0x1\n"
+ " add r1, r0, r3\n"
+ " str r2, [r1]\n"
+ " mov r1, #0x3f\n"
+ " bl GetMonData\n"
+ " ldr r1, [r6]\n"
+ " mov r2, #0x82\n"
+ " lsl r2, r2, #0x1\n"
+ " add r1, r1, r2\n"
+ " str r0, [r1]\n"
+ " add sp, sp, #0x10\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._568:\n"
+ " .align 2, 0\n"
+ "._567:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C5DEC()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " ldr r4, ._569\n"
+ " ldr r0, [r4]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0x6c\n"
+ " mov r1, #0x19\n"
+ " bl SetMonData\n"
+ " ldr r0, [r4]\n"
+ " mov r1, #0xd\n"
+ " mov r2, sp\n"
+ " bl SetMonData\n"
+ " ldr r0, [r4]\n"
+ " mov r1, #0xe\n"
+ " mov r2, sp\n"
+ " bl SetMonData\n"
+ " ldr r0, [r4]\n"
+ " mov r1, #0xf\n"
+ " mov r2, sp\n"
+ " bl SetMonData\n"
+ " ldr r0, [r4]\n"
+ " mov r1, #0x10\n"
+ " mov r2, sp\n"
+ " bl SetMonData\n"
+ " ldr r0, [r4]\n"
+ " bl CalculateMonStats\n"
+ " ldr r0, [r4]\n"
+ " bl GiveMonInitialMoveset\n"
+ " ldr r0, [r4]\n"
+ " mov r1, #0x38\n"
+ " bl GetMonData\n"
+ " add r1, r0, #0\n"
+ " ldr r0, [r4]\n"
+ " str r1, [r0, #0x68]\n"
+ " mov r1, #0xd\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r4]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0x80\n"
+ " str r2, [r1]\n"
+ " mov r1, #0xe\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r4]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0x84\n"
+ " str r2, [r1]\n"
+ " mov r1, #0xf\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r4]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0x88\n"
+ " str r2, [r1]\n"
+ " mov r1, #0x10\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r4]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0x8c\n"
+ " str r2, [r1]\n"
+ " mov r1, #0x3a\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r4]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0xf0\n"
+ " str r2, [r1]\n"
+ " mov r1, #0x3b\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r4]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0xf4\n"
+ " str r2, [r1]\n"
+ " mov r1, #0x3c\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r4]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0xf8\n"
+ " str r2, [r1]\n"
+ " mov r1, #0x3d\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r4]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0xfc\n"
+ " str r2, [r1]\n"
+ " mov r1, #0x3e\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r4]\n"
+ " mov r3, #0x80\n"
+ " lsl r3, r3, #0x1\n"
+ " add r1, r0, r3\n"
+ " str r2, [r1]\n"
+ " mov r1, #0x3f\n"
+ " bl GetMonData\n"
+ " ldr r1, [r4]\n"
+ " mov r2, #0x82\n"
+ " lsl r2, r2, #0x1\n"
+ " add r1, r1, r2\n"
+ " str r0, [r1]\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._570:\n"
+ " .align 2, 0\n"
+ "._569:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C5EF4()
+{
+ asm(
+ " push {r4, lr}\n"
+ " ldr r4, ._571\n"
+ " ldr r0, [r4]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0x98\n"
+ " mov r1, #0x27\n"
+ " bl SetMonData\n"
+ " ldr r0, [r4]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0x9c\n"
+ " mov r1, #0x1a\n"
+ " bl SetMonData\n"
+ " ldr r0, [r4]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xa0\n"
+ " mov r1, #0x28\n"
+ " bl SetMonData\n"
+ " ldr r0, [r4]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xa4\n"
+ " mov r1, #0x1b\n"
+ " bl SetMonData\n"
+ " ldr r0, [r4]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xa8\n"
+ " mov r1, #0x29\n"
+ " bl SetMonData\n"
+ " ldr r0, [r4]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xac\n"
+ " mov r1, #0x1c\n"
+ " bl SetMonData\n"
+ " ldr r0, [r4]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xb0\n"
+ " mov r1, #0x2a\n"
+ " bl SetMonData\n"
+ " ldr r0, [r4]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xb4\n"
+ " mov r1, #0x1d\n"
+ " bl SetMonData\n"
+ " ldr r0, [r4]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xb8\n"
+ " mov r1, #0x2b\n"
+ " bl SetMonData\n"
+ " ldr r0, [r4]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xbc\n"
+ " mov r1, #0x1e\n"
+ " bl SetMonData\n"
+ " ldr r0, [r4]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xc0\n"
+ " mov r1, #0x2c\n"
+ " bl SetMonData\n"
+ " ldr r0, [r4]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xc4\n"
+ " mov r1, #0x1f\n"
+ " bl SetMonData\n"
+ " ldr r0, [r4]\n"
+ " bl CalculateMonStats\n"
+ " ldr r0, [r4]\n"
+ " mov r1, #0x3a\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r4]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0xf0\n"
+ " str r2, [r1]\n"
+ " mov r1, #0x3b\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r4]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0xf4\n"
+ " str r2, [r1]\n"
+ " mov r1, #0x3c\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r4]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0xf8\n"
+ " str r2, [r1]\n"
+ " mov r1, #0x3d\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r4]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0xfc\n"
+ " str r2, [r1]\n"
+ " mov r1, #0x3e\n"
+ " bl GetMonData\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r4]\n"
+ " mov r3, #0x80\n"
+ " lsl r3, r3, #0x1\n"
+ " add r1, r0, r3\n"
+ " str r2, [r1]\n"
+ " mov r1, #0x3f\n"
+ " bl GetMonData\n"
+ " ldr r1, [r4]\n"
+ " mov r2, #0x82\n"
+ " lsl r2, r2, #0x1\n"
+ " add r1, r1, r2\n"
+ " str r0, [r1]\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._572:\n"
+ " .align 2, 0\n"
+ "._571:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C5FFC()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " add sp, sp, #0xffffffe0\n"
+ " ldr r1, ._578\n"
+ " add r0, sp, #0x10\n"
+ " mov r2, #0x4\n"
+ " bl memcpy\n"
+ " add r7, sp, #0x14\n"
+ " ldr r1, ._578 + 4\n"
+ " add r0, r7, #0\n"
+ " mov r2, #0x8\n"
+ " bl memcpy\n"
+ " ldr r5, ._578 + 8\n"
+ " ldr r2, [r5]\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0x98\n"
+ " ldr r4, [r0]\n"
+ " mov r1, #0x1f\n"
+ " and r4, r4, r1\n"
+ " add r0, r0, #0x8\n"
+ " ldr r0, [r0]\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x5\n"
+ " orr r4, r4, r0\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0xa8\n"
+ " ldr r0, [r0]\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0xa\n"
+ " orr r4, r4, r0\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0xb0\n"
+ " ldr r0, [r0]\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0xf\n"
+ " orr r4, r4, r0\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0xb8\n"
+ " ldr r0, [r0]\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x14\n"
+ " orr r4, r4, r0\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0xc0\n"
+ " ldr r0, [r0]\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x19\n"
+ " orr r4, r4, r0\n"
+ " ldr r0, [r2, #0x64]\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " bl NationalPokedexNumToSpecies\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " ldr r0, [r5]\n"
+ " ldr r2, [r0, #0x68]\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r2, r2, #0x18\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " mov r6, #0x1\n"
+ " str r6, [sp]\n"
+ " ldr r3, [r0, #0x74]\n"
+ " str r3, [sp, #0x4]\n"
+ " str r6, [sp, #0x8]\n"
+ " ldr r3, [r0, #0x70]\n"
+ " str r3, [sp, #0xc]\n"
+ " add r3, r4, #0\n"
+ " bl CreateMon\n"
+ " ldr r2, [r5]\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0x80\n"
+ " ldr r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._573 @cond_branch\n"
+ " lsl r1, r0, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " add r0, r2, #0\n"
+ " mov r2, #0x0\n"
+ " bl SetMonMoveSlot\n"
+ "._573:\n"
+ " ldr r2, [r5]\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0x84\n"
+ " ldr r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._574 @cond_branch\n"
+ " lsl r1, r0, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " add r0, r2, #0\n"
+ " mov r2, #0x1\n"
+ " bl SetMonMoveSlot\n"
+ "._574:\n"
+ " ldr r2, [r5]\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0x88\n"
+ " ldr r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._575 @cond_branch\n"
+ " lsl r1, r0, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " add r0, r2, #0\n"
+ " mov r2, #0x2\n"
+ " bl SetMonMoveSlot\n"
+ "._575:\n"
+ " ldr r2, [r5]\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0x8c\n"
+ " ldr r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._576 @cond_branch\n"
+ " lsl r1, r0, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " add r0, r2, #0\n"
+ " mov r2, #0x3\n"
+ " bl SetMonMoveSlot\n"
+ "._576:\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0x6c\n"
+ " mov r1, #0x19\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0x98\n"
+ " mov r1, #0x27\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0x9c\n"
+ " mov r1, #0x1a\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xa0\n"
+ " mov r1, #0x28\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xa4\n"
+ " mov r1, #0x1b\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xa8\n"
+ " mov r1, #0x29\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xac\n"
+ " mov r1, #0x1c\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xb0\n"
+ " mov r1, #0x2a\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xb4\n"
+ " mov r1, #0x1d\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xb8\n"
+ " mov r1, #0x2b\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xbc\n"
+ " mov r1, #0x1e\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xc0\n"
+ " mov r1, #0x2c\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xc4\n"
+ " mov r1, #0x1f\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xc8\n"
+ " mov r1, #0x16\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xcc\n"
+ " mov r1, #0x17\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xd0\n"
+ " mov r1, #0x18\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xd4\n"
+ " mov r1, #0x21\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xd8\n"
+ " mov r1, #0x2f\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xdc\n"
+ " mov r1, #0x30\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xe0\n"
+ " mov r1, #0x20\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xe4\n"
+ " mov r1, #0x22\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0x90\n"
+ " mov r1, #0xc\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0x94\n"
+ " mov r1, #0x2e\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r1, r0, #0\n"
+ " add r1, r1, #0xec\n"
+ " ldr r2, [r1]\n"
+ " lsl r2, r2, #0x3\n"
+ " ldr r1, ._578 + 12\n"
+ " add r2, r2, r1\n"
+ " mov r1, #0x37\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " add r2, r0, #0\n"
+ " add r2, r2, #0xe8\n"
+ " mov r1, #0x2d\n"
+ " bl SetMonData\n"
+ " ldr r1, [r5]\n"
+ " add r0, r1, #0\n"
+ " add r0, r0, #0xe8\n"
+ " ldr r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._577 @cond_branch\n"
+ " add r0, r1, #0\n"
+ " mov r1, #0x2\n"
+ " add r2, sp, #0x10\n"
+ " bl SetMonData\n"
+ " add r2, sp, #0x1c\n"
+ " strb r6, [r2]\n"
+ " ldr r0, [r5]\n"
+ " mov r1, #0x3\n"
+ " bl SetMonData\n"
+ "._577:\n"
+ " ldr r0, [r5]\n"
+ " mov r1, #0x7\n"
+ " add r2, r7, #0\n"
+ " bl SetMonData\n"
+ " mov r2, sp\n"
+ " add r2, r2, #0x1e\n"
+ " mov r0, #0xff\n"
+ " strh r0, [r2]\n"
+ " ldr r0, [r5]\n"
+ " mov r1, #0x23\n"
+ " bl SetMonData\n"
+ " ldr r0, [r5]\n"
+ " bl CalculateMonStats\n"
+ " add sp, sp, #0x20\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._579:\n"
+ " .align 2, 0\n"
+ "._578:\n"
+ " .word gUnknown_Debug_083F8758\n"
+ " .word gUnknown_Debug_083F875C\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word gUnknown_Debug_083F86E8+0x4\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C627C()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " add r6, r4, #0\n"
+ " ldr r1, ._584\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " bl memcpy\n"
+ " add r5, sp, #0x4\n"
+ " ldr r1, ._584 + 4\n"
+ " add r0, r5, #0\n"
+ " mov r2, #0x2\n"
+ " bl memcpy\n"
+ " cmp r4, #0x1\n"
+ " beq ._580 @cond_branch\n"
+ " cmp r4, #0x1\n"
+ " bgt ._581 @cond_branch\n"
+ " cmp r4, #0\n"
+ " beq ._582 @cond_branch\n"
+ " b ._595\n"
+ "._585:\n"
+ " .align 2, 0\n"
+ "._584:\n"
+ " .word gUnknown_Debug_083F7FD4\n"
+ " .word gUnknown_Debug_083F8764\n"
+ "._581:\n"
+ " cmp r6, #0x2\n"
+ " beq ._586 @cond_branch\n"
+ " b ._595\n"
+ "._582:\n"
+ " ldr r0, ._589\n"
+ " ldr r0, [r0]\n"
+ " ldr r1, ._589 + 4\n"
+ " add r0, r0, r1\n"
+ " b ._588\n"
+ "._590:\n"
+ " .align 2, 0\n"
+ "._589:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word 0x169\n"
+ "._580:\n"
+ " ldr r4, ._593\n"
+ " ldr r3, [r4]\n"
+ " ldr r1, ._593 + 4\n"
+ " add r0, r3, r1\n"
+ " ldrb r2, [r0]\n"
+ " ldr r1, ._593 + 8\n"
+ " mov r6, #0xb4\n"
+ " lsl r6, r6, #0x1\n"
+ " add r0, r3, r6\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0, #0x4]\n"
+ " sub r0, r0, #0x1\n"
+ " cmp r2, r0\n"
+ " bge ._595 @cond_branch\n"
+ " lsl r2, r2, #0x19\n"
+ " mov r0, #0xa0\n"
+ " lsl r0, r0, #0x13\n"
+ " add r2, r2, r0\n"
+ " lsr r2, r2, #0x18\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r0, [r4]\n"
+ " ldr r2, ._593 + 4\n"
+ " add r1, r0, r2\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " ldr r0, [r4]\n"
+ " add r0, r0, r2\n"
+ "._588:\n"
+ " ldrb r2, [r0]\n"
+ " lsl r2, r2, #0x19\n"
+ " mov r6, #0xa0\n"
+ " lsl r6, r6, #0x13\n"
+ " add r2, r2, r6\n"
+ " lsr r2, r2, #0x18\n"
+ " mov r0, sp\n"
+ " mov r1, #0x1\n"
+ " bl MenuPrint\n"
+ " b ._595\n"
+ "._594:\n"
+ " .align 2, 0\n"
+ "._593:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word 0x169\n"
+ " .word gUnknown_Debug_083F8698\n"
+ "._586:\n"
+ " ldr r4, ._596\n"
+ " ldr r0, [r4]\n"
+ " ldr r2, ._596 + 4\n"
+ " add r1, r0, r2\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " beq ._595 @cond_branch\n"
+ " add r2, r0, #0\n"
+ " lsl r2, r2, #0x19\n"
+ " mov r6, #0xa0\n"
+ " lsl r6, r6, #0x13\n"
+ " add r2, r2, r6\n"
+ " lsr r2, r2, #0x18\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r0, [r4]\n"
+ " ldr r2, ._596 + 4\n"
+ " add r1, r0, r2\n"
+ " ldrb r0, [r1]\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " ldr r0, [r4]\n"
+ " add r0, r0, r2\n"
+ " ldrb r2, [r0]\n"
+ " lsl r2, r2, #0x19\n"
+ " add r2, r2, r6\n"
+ " lsr r2, r2, #0x18\n"
+ " mov r0, sp\n"
+ " mov r1, #0x1\n"
+ " bl MenuPrint\n"
+ "._595:\n"
+ " add sp, sp, #0x8\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._597:\n"
+ " .align 2, 0\n"
+ "._596:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word 0x169\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C6384()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r9\n"
+ " mov r6, r8\n"
+ " push {r6, r7}\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r5, #0x0\n"
+ " ldr r3, ._600\n"
+ " ldr r1, ._600 + 4\n"
+ " ldr r0, [r1]\n"
+ " mov r2, #0xb4\n"
+ " lsl r2, r2, #0x1\n"
+ " add r0, r0, r2\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r3\n"
+ " ldr r0, [r0]\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0xff\n"
+ " beq ._598 @cond_branch\n"
+ " add r4, r1, #0\n"
+ " ldr r0, ._600 + 8\n"
+ " mov r9, r0\n"
+ " mov r8, r3\n"
+ " add r7, r2, #0\n"
+ " mov r6, #0x1\n"
+ "._599:\n"
+ " ldr r0, [r4]\n"
+ " add r0, r0, r9\n"
+ " mov r1, #0xfc\n"
+ " strb r1, [r0]\n"
+ " ldr r0, [r4]\n"
+ " add r1, r1, #0x70\n"
+ " add r0, r0, r1\n"
+ " strb r6, [r0]\n"
+ " ldr r0, [r4]\n"
+ " ldr r2, ._600 + 12\n"
+ " add r0, r0, r2\n"
+ " strb r6, [r0]\n"
+ " ldr r1, [r4]\n"
+ " add r2, r2, #0x1\n"
+ " add r0, r1, r2\n"
+ " add r1, r1, r7\n"
+ " ldrb r1, [r1]\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r8\n"
+ " ldr r1, [r1]\n"
+ " add r1, r1, r5\n"
+ " ldrb r1, [r1]\n"
+ " mov r2, #0x1\n"
+ " bl debug_80C5738\n"
+ " ldr r0, [r4]\n"
+ " add r0, r0, r9\n"
+ " lsl r2, r5, #0x19\n"
+ " mov r1, #0xa0\n"
+ " lsl r1, r1, #0x13\n"
+ " add r2, r2, r1\n"
+ " lsr r2, r2, #0x18\n"
+ " mov r1, #0x2\n"
+ " bl MenuPrint\n"
+ " add r0, r5, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r5, r0, #0x10\n"
+ " ldr r0, [r4]\n"
+ " add r0, r0, r7\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r8\n"
+ " ldr r0, [r0]\n"
+ " add r0, r0, r5\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0xff\n"
+ " bne ._599 @cond_branch\n"
+ "._598:\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"
+ "._601:\n"
+ " .align 2, 0\n"
+ "._600:\n"
+ " .word gUnknown_Debug_083F8698\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word 0x16b\n"
+ " .word 0x16d\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C643C()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " mov r0, #0x2\n"
+ " mov r1, #0x5\n"
+ " mov r2, #0x1c\n"
+ " mov r3, #0x12\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " mov r5, #0x0\n"
+ " ldr r6, ._605\n"
+ " ldr r1, ._605 + 4\n"
+ " ldr r0, [r1]\n"
+ " mov r3, #0xb4\n"
+ " lsl r3, r3, #0x1\n"
+ " add r0, r0, r3\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r6\n"
+ " ldr r0, [r0]\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0xff\n"
+ " beq ._602 @cond_branch\n"
+ " add r4, r1, #0\n"
+ " mov r0, #0x1\n"
+ " mov r8, r0\n"
+ "._607:\n"
+ " ldr r0, [r4]\n"
+ " ldr r7, ._605 + 8\n"
+ " add r2, r0, r7\n"
+ " mov r0, #0xfc\n"
+ " strb r0, [r2]\n"
+ " ldr r0, [r4]\n"
+ " mov r2, #0xb6\n"
+ " lsl r2, r2, #0x1\n"
+ " add r0, r0, r2\n"
+ " mov r7, r8\n"
+ " strb r7, [r0]\n"
+ " ldr r2, [r4]\n"
+ " ldr r7, ._605 + 12\n"
+ " add r0, r2, r7\n"
+ " ldrb r0, [r0]\n"
+ " cmp r5, r0\n"
+ " bne ._603 @cond_branch\n"
+ " ldr r0, ._605 + 16\n"
+ " add r2, r2, r0\n"
+ " mov r0, #0x2\n"
+ " strb r0, [r2]\n"
+ " ldr r1, [r1]\n"
+ " mov r2, #0xb7\n"
+ " lsl r2, r2, #0x1\n"
+ " add r0, r1, r2\n"
+ " add r1, r1, r3\n"
+ " ldrb r1, [r1]\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r6\n"
+ " ldr r1, [r1]\n"
+ " add r1, r1, r5\n"
+ " ldrb r1, [r1]\n"
+ " mov r2, #0x2\n"
+ " bl debug_80C5738\n"
+ " b ._604\n"
+ "._606:\n"
+ " .align 2, 0\n"
+ "._605:\n"
+ " .word gUnknown_Debug_083F8698\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word 0x16b\n"
+ " .word 0x169\n"
+ " .word 0x16d\n"
+ "._603:\n"
+ " ldr r3, ._608\n"
+ " add r0, r2, r3\n"
+ " mov r7, r8\n"
+ " strb r7, [r0]\n"
+ " ldr r1, [r1]\n"
+ " mov r2, #0xb7\n"
+ " lsl r2, r2, #0x1\n"
+ " add r0, r1, r2\n"
+ " ldr r2, ._608 + 4\n"
+ " sub r3, r3, #0x5\n"
+ " add r1, r1, r3\n"
+ " ldrb r1, [r1]\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r2\n"
+ " ldr r1, [r1]\n"
+ " add r1, r1, r5\n"
+ " ldrb r1, [r1]\n"
+ " mov r2, #0x1\n"
+ " bl debug_80C5738\n"
+ "._604:\n"
+ " ldr r0, [r4]\n"
+ " ldr r7, ._608 + 8\n"
+ " add r0, r0, r7\n"
+ " lsl r2, r5, #0x19\n"
+ " mov r1, #0xa0\n"
+ " lsl r1, r1, #0x13\n"
+ " add r2, r2, r1\n"
+ " lsr r2, r2, #0x18\n"
+ " mov r1, #0x2\n"
+ " bl MenuPrint\n"
+ " add r0, r5, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r5, r0, #0x10\n"
+ " ldr r6, ._608 + 4\n"
+ " add r1, r4, #0\n"
+ " ldr r0, [r4]\n"
+ " mov r3, #0xb4\n"
+ " lsl r3, r3, #0x1\n"
+ " add r0, r0, r3\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r6\n"
+ " ldr r0, [r0]\n"
+ " add r0, r0, r5\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0xff\n"
+ " bne ._607 @cond_branch\n"
+ "._602:\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._609:\n"
+ " .align 2, 0\n"
+ "._608:\n"
+ " .word 0x16d\n"
+ " .word gUnknown_Debug_083F8698\n"
+ " .word 0x16b\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C6544()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r9\n"
+ " mov r6, r8\n"
+ " push {r6, r7}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r9, r0\n"
+ " ldr r0, ._614\n"
+ " mov r8, r0\n"
+ " ldr r6, ._614 + 4\n"
+ " ldr r1, [r6]\n"
+ " mov r5, #0xb4\n"
+ " lsl r5, r5, #0x1\n"
+ " add r0, r1, r5\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r8\n"
+ " ldr r4, ._614 + 8\n"
+ " add r1, r1, r4\n"
+ " ldrb r1, [r1]\n"
+ " ldr r0, [r0]\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0]\n"
+ " bl debug_80C5B60\n"
+ " add r7, r0, #0\n"
+ " ldr r2, ._614 + 12\n"
+ " ldr r3, [r6]\n"
+ " add r5, r3, r5\n"
+ " ldrb r0, [r5]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r8\n"
+ " add r4, r3, r4\n"
+ " ldrb r1, [r4]\n"
+ " ldr r0, [r0]\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r2, r2, #0x4\n"
+ " add r0, r0, r2\n"
+ " ldr r1, [r0]\n"
+ " ldr r5, [r1]\n"
+ " ldr r4, [r1, #0x4]\n"
+ " ldr r2, ._614 + 16\n"
+ " mov r6, #0xb5\n"
+ " lsl r6, r6, #0x1\n"
+ " add r0, r3, r6\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r2\n"
+ " ldr r3, [r0]\n"
+ " ldrb r0, [r1, #0x8]\n"
+ " cmp r0, #0\n"
+ " bne ._623 @cond_branch\n"
+ " mov r0, r9\n"
+ " cmp r0, #0x1\n"
+ " beq ._611 @cond_branch\n"
+ " cmp r0, #0x2\n"
+ " beq ._612 @cond_branch\n"
+ " b ._623\n"
+ "._615:\n"
+ " .align 2, 0\n"
+ "._614:\n"
+ " .word gUnknown_Debug_083F8698\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word 0x169\n"
+ " .word gUnknown_Debug_083F8554\n"
+ " .word gUnknown_Debug_083F8768\n"
+ "._611:\n"
+ " sub r0, r4, r3\n"
+ " cmp r7, r0\n"
+ " bcs ._616 @cond_branch\n"
+ " add r7, r7, r3\n"
+ " b ._623\n"
+ "._616:\n"
+ " cmp r7, r4\n"
+ " bcc ._622 @cond_branch\n"
+ " b ._619\n"
+ "._612:\n"
+ " add r0, r5, r3\n"
+ " cmp r7, r0\n"
+ " bls ._620 @cond_branch\n"
+ " sub r7, r7, r3\n"
+ " b ._623\n"
+ "._620:\n"
+ " cmp r7, r5\n"
+ " bls ._622 @cond_branch\n"
+ "._619:\n"
+ " add r7, r5, #0\n"
+ " b ._623\n"
+ "._622:\n"
+ " add r7, r4, #0\n"
+ "._623:\n"
+ " ldr r1, ._624\n"
+ " ldr r0, ._624 + 4\n"
+ " ldr r2, [r0]\n"
+ " mov r3, #0xb4\n"
+ " lsl r3, r3, #0x1\n"
+ " add r0, r2, r3\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r6, ._624 + 8\n"
+ " add r1, r2, r6\n"
+ " ldrb r1, [r1]\n"
+ " ldr r0, [r0]\n"
+ " add r0, r0, r1\n"
+ " ldrb r1, [r0]\n"
+ " add r0, r7, #0\n"
+ " bl debug_80C5B74\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"
+ "._625:\n"
+ " .align 2, 0\n"
+ "._624:\n"
+ " .word gUnknown_Debug_083F8698\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ " .word 0x169\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C6630()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add r4, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r2, r2, #0x18\n"
+ " lsl r3, r3, #0x18\n"
+ " lsr r3, r3, #0x18\n"
+ " mov r0, #0xfc\n"
+ " strb r0, [r4]\n"
+ " add r4, r4, #0x1\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r4]\n"
+ " add r4, r4, #0x1\n"
+ " cmp r2, #0x2\n"
+ " bne ._626 @cond_branch\n"
+ " ldr r0, ._629\n"
+ " ldr r0, [r0]\n"
+ " mov r5, #0xb5\n"
+ " lsl r5, r5, #0x1\n"
+ " add r0, r0, r5\n"
+ " ldrb r0, [r0]\n"
+ " cmp r3, r0\n"
+ " beq ._627 @cond_branch\n"
+ " strb r2, [r4]\n"
+ " b ._628\n"
+ "._630:\n"
+ " .align 2, 0\n"
+ "._629:\n"
+ " .word unk_debug_ewram_0+0x30\n"
+ "._627:\n"
+ " mov r0, #0x4\n"
+ "._626:\n"
+ " strb r0, [r4]\n"
+ "._628:\n"
+ " add r0, r1, #0\n"
+ " add r0, r0, #0xa1\n"
+ " strb r0, [r4, #0x1]\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C6678()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r9\n"
+ " mov r6, r8\n"
+ " push {r6, r7}\n"
+ " mov r9, r0\n"
+ " add r6, r1, #0\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r2, r2, #0x18\n"
+ " lsl r3, r3, #0x18\n"
+ " lsr r3, r3, #0x18\n"
+ " mov r8, r3\n"
+ " mov r7, #0x0\n"
+ " sub r0, r2, #1\n"
+ " cmp r0, #0x9\n"
+ " bhi ._644 @cond_branch\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._633\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov pc, r0\n"
+ "._634:\n"
+ " .align 2, 0\n"
+ "._633:\n"
+ " .word ._632\n"
+ "._632:\n"
+ " .word ._635\n"
+ " .word ._636\n"
+ " .word ._637\n"
+ " .word ._638\n"
+ " .word ._639\n"
+ " .word ._640\n"
+ " .word ._641\n"
+ " .word ._642\n"
+ " .word ._643\n"
+ " .word ._644\n"
+ "._644:\n"
+ " mov r0, r9\n"
+ " add r4, r0, r7\n"
+ " ldr r5, ._645\n"
+ " add r0, r6, #0\n"
+ " add r1, r5, #0\n"
+ " bl __udivsi3\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " add r0, r4, #0\n"
+ " mov r2, r8\n"
+ " mov r3, #0x9\n"
+ " bl debug_80C6630\n"
+ " add r0, r6, #0\n"
+ " add r1, r5, #0\n"
+ " bl __umodsi3\n"
+ " add r6, r0, #0\n"
+ " add r0, r7, #4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ "._643:\n"
+ " mov r1, r9\n"
+ " add r4, r1, r7\n"
+ " ldr r5, ._645 + 4\n"
+ " add r0, r6, #0\n"
+ " add r1, r5, #0\n"
+ " bl __udivsi3\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " add r0, r4, #0\n"
+ " mov r2, r8\n"
+ " mov r3, #0x8\n"
+ " bl debug_80C6630\n"
+ " add r0, r6, #0\n"
+ " add r1, r5, #0\n"
+ " bl __umodsi3\n"
+ " add r6, r0, #0\n"
+ " add r0, r7, #4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ "._642:\n"
+ " mov r0, r9\n"
+ " add r4, r0, r7\n"
+ " ldr r5, ._645 + 8\n"
+ " add r0, r6, #0\n"
+ " add r1, r5, #0\n"
+ " bl __udivsi3\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " add r0, r4, #0\n"
+ " mov r2, r8\n"
+ " mov r3, #0x7\n"
+ " bl debug_80C6630\n"
+ " add r0, r6, #0\n"
+ " add r1, r5, #0\n"
+ " bl __umodsi3\n"
+ " add r6, r0, #0\n"
+ " add r0, r7, #4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ "._641:\n"
+ " mov r1, r9\n"
+ " add r4, r1, r7\n"
+ " ldr r5, ._645 + 12\n"
+ " add r0, r6, #0\n"
+ " add r1, r5, #0\n"
+ " bl __udivsi3\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " add r0, r4, #0\n"
+ " mov r2, r8\n"
+ " mov r3, #0x6\n"
+ " bl debug_80C6630\n"
+ " add r0, r6, #0\n"
+ " add r1, r5, #0\n"
+ " bl __umodsi3\n"
+ " add r6, r0, #0\n"
+ " add r0, r7, #4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ "._640:\n"
+ " mov r0, r9\n"
+ " add r4, r0, r7\n"
+ " ldr r5, ._645 + 16\n"
+ " add r0, r6, #0\n"
+ " add r1, r5, #0\n"
+ " bl __udivsi3\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " add r0, r4, #0\n"
+ " mov r2, r8\n"
+ " mov r3, #0x5\n"
+ " bl debug_80C6630\n"
+ " add r0, r6, #0\n"
+ " add r1, r5, #0\n"
+ " bl __umodsi3\n"
+ " add r6, r0, #0\n"
+ " add r0, r7, #4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ "._639:\n"
+ " mov r1, r9\n"
+ " add r4, r1, r7\n"
+ " ldr r5, ._645 + 20\n"
+ " add r0, r6, #0\n"
+ " add r1, r5, #0\n"
+ " bl __udivsi3\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " add r0, r4, #0\n"
+ " mov r2, r8\n"
+ " mov r3, #0x4\n"
+ " bl debug_80C6630\n"
+ " add r0, r6, #0\n"
+ " add r1, r5, #0\n"
+ " bl __umodsi3\n"
+ " add r6, r0, #0\n"
+ " add r0, r7, #4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ "._638:\n"
+ " mov r0, r9\n"
+ " add r4, r0, r7\n"
+ " mov r5, #0xfa\n"
+ " lsl r5, r5, #0x2\n"
+ " add r0, r6, #0\n"
+ " add r1, r5, #0\n"
+ " bl __udivsi3\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " add r0, r4, #0\n"
+ " mov r2, r8\n"
+ " mov r3, #0x3\n"
+ " bl debug_80C6630\n"
+ " add r0, r6, #0\n"
+ " add r1, r5, #0\n"
+ " bl __umodsi3\n"
+ " add r6, r0, #0\n"
+ " add r0, r7, #4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ "._637:\n"
+ " mov r1, r9\n"
+ " add r4, r1, r7\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x64\n"
+ " bl __udivsi3\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " add r0, r4, #0\n"
+ " mov r2, r8\n"
+ " mov r3, #0x2\n"
+ " bl debug_80C6630\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x64\n"
+ " bl __umodsi3\n"
+ " add r6, r0, #0\n"
+ " add r0, r7, #4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ "._636:\n"
+ " mov r0, r9\n"
+ " add r4, r0, r7\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0xa\n"
+ " bl __udivsi3\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " add r0, r4, #0\n"
+ " mov r2, r8\n"
+ " mov r3, #0x1\n"
+ " bl debug_80C6630\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0xa\n"
+ " bl __umodsi3\n"
+ " add r6, r0, #0\n"
+ " add r0, r7, #4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ "._635:\n"
+ " mov r1, r9\n"
+ " add r0, r1, r7\n"
+ " lsl r1, r6, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " mov r2, r8\n"
+ " mov r3, #0x0\n"
+ " bl debug_80C6630\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"
+ "._646:\n"
+ " .align 2, 0\n"
+ "._645:\n"
+ " .word 0x3b9aca00\n"
+ " .word 0x5f5e100\n"
+ " .word 0x989680\n"
+ " .word 0xf4240\n"
+ " .word 0x186a0\n"
+ " .word 0x2710\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C689C()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add r5, r0, #0\n"
+ " add r4, r1, #0\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r2, r2, #0x18\n"
+ " mov r3, #0x0\n"
+ " ldrb r0, [r4]\n"
+ " b ._647\n"
+ "._649:\n"
+ " add r1, r5, r3\n"
+ " add r0, r4, r3\n"
+ " ldrb r0, [r0]\n"
+ " strb r0, [r1]\n"
+ " add r0, r3, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r3, r0, #0x18\n"
+ " add r0, r4, r3\n"
+ " ldrb r0, [r0]\n"
+ "._647:\n"
+ " cmp r0, #0xff\n"
+ " beq ._648 @cond_branch\n"
+ " cmp r3, r2\n"
+ " bcc ._649 @cond_branch\n"
+ "._648:\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C68CC()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r4, r0, #0x10\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r6, r1, #0x18\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r5, r2, #0x18\n"
+ " lsl r3, r3, #0x18\n"
+ " lsr r3, r3, #0x18\n"
+ " mov r2, #0x0\n"
+ " mov r1, #0x0\n"
+ "._650:\n"
+ " mov r7, sp\n"
+ " add r0, r7, r2\n"
+ " strb r1, [r0]\n"
+ " add r0, r2, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " cmp r2, #0x3\n"
+ " bls ._650 @cond_branch\n"
+ " mov r1, sp\n"
+ " mov r0, #0xff\n"
+ " strb r0, [r1, #0x4]\n"
+ " cmp r3, #0x2\n"
+ " beq ._651 @cond_branch\n"
+ " cmp r3, #0x2\n"
+ " bgt ._652 @cond_branch\n"
+ " cmp r3, #0x1\n"
+ " beq ._653 @cond_branch\n"
+ " b ._654\n"
+ "._652:\n"
+ " cmp r3, #0x3\n"
+ " beq ._655 @cond_branch\n"
+ "._654:\n"
+ " mov r1, sp\n"
+ " lsr r0, r4, #0xc\n"
+ " strb r0, [r1]\n"
+ "._655:\n"
+ " mov r1, sp\n"
+ " mov r0, #0xf0\n"
+ " lsl r0, r0, #0x4\n"
+ " and r0, r0, r4\n"
+ " lsr r0, r0, #0x8\n"
+ " strb r0, [r1, #0x1]\n"
+ "._651:\n"
+ " mov r1, sp\n"
+ " mov r0, #0xf0\n"
+ " and r0, r0, r4\n"
+ " lsr r0, r0, #0x4\n"
+ " strb r0, [r1, #0x2]\n"
+ "._653:\n"
+ " mov r2, sp\n"
+ " mov r1, #0xf\n"
+ " add r0, r4, #0\n"
+ " and r0, r0, r1\n"
+ " strb r0, [r2, #0x3]\n"
+ " mov r2, #0x0\n"
+ "._658:\n"
+ " mov r0, sp\n"
+ " add r1, r0, r2\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0x9\n"
+ " bhi ._656 @cond_branch\n"
+ " add r0, r0, #0xa1\n"
+ " b ._657\n"
+ "._656:\n"
+ " add r0, r0, #0xb1\n"
+ "._657:\n"
+ " strb r0, [r1]\n"
+ " add r0, r2, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " cmp r2, #0x3\n"
+ " bls ._658 @cond_branch\n"
+ " mov r0, #0x4\n"
+ " sub r0, r0, r3\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " add r0, r0, sp\n"
+ " add r1, r6, #0\n"
+ " add r2, r5, #0\n"
+ " bl MenuPrint\n"
+ " add sp, sp, #0x8\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void InitSeePokemonGraphics()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " bl debug_80C35DC\n"
+ " ldr r1, ._659\n"
+ " ldr r2, ._659 + 4\n"
+ " ldr r0, ._659 + 8\n"
+ " str r1, [r0]\n"
+ " str r2, [r0, #0x4]\n"
+ " ldr r1, ._659 + 12\n"
+ " str r1, [r0, #0x8]\n"
+ " ldr r0, [r0, #0x8]\n"
+ " ldr r0, ._659 + 16\n"
+ " mov r1, #0x80\n"
+ " mov r2, #0x60\n"
+ " bl LoadPalette\n"
+ " ldr r1, ._659 + 20\n"
+ " add r0, sp, #0x4\n"
+ " strh r1, [r0]\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x2\n"
+ " bl LoadPalette\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " mov r5, #0x0\n"
+ " str r5, [sp]\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x10\n"
+ " mov r3, #0x0\n"
+ " bl BeginNormalPaletteFade\n"
+ " ldr r0, ._659 + 24\n"
+ " mov r6, #0x0\n"
+ " strh r5, [r0]\n"
+ " add r0, r0, #0x4\n"
+ " strh r5, [r0]\n"
+ " sub r0, r0, #0x2\n"
+ " strh r5, [r0]\n"
+ " add r0, r0, #0x4\n"
+ " strh r5, [r0]\n"
+ " ldr r1, ._659 + 28\n"
+ " mov r0, #0x3f\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " mov r0, #0x1f\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x6\n"
+ " mov r0, #0xf1\n"
+ " strh r0, [r1]\n"
+ " ldr r0, ._659 + 32\n"
+ " strh r5, [r0]\n"
+ " add r1, r1, #0x4\n"
+ " mov r0, #0x7\n"
+ " strh r0, [r1]\n"
+ " ldr r3, ._659 + 36\n"
+ " ldrh r2, [r3]\n"
+ " strh r5, [r3]\n"
+ " ldr r4, ._659 + 40\n"
+ " ldrh r0, [r4]\n"
+ " mov r1, #0x1\n"
+ " orr r0, r0, r1\n"
+ " strh r0, [r4]\n"
+ " strh r2, [r3]\n"
+ " ldr r0, ._659 + 44\n"
+ " bl SetVBlankCallback\n"
+ " ldr r0, ._659 + 48\n"
+ " bl SetMainCallback2\n"
+ " bl sub_809D51C\n"
+ " ldr r1, ._659 + 52\n"
+ " ldr r2, ._659 + 56\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " ldr r2, ._659 + 60\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " sub r1, r1, #0xa\n"
+ " mov r2, #0xcd\n"
+ " lsl r2, r2, #0x6\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " ldr r0, ._659 + 64\n"
+ " mov r1, #0x0\n"
+ " bl CreateTask\n"
+ " ldr r1, ._659 + 68\n"
+ " ldr r0, ._659 + 72\n"
+ " str r0, [r1]\n"
+ " ldr r1, ._659 + 76\n"
+ " strh r1, [r0]\n"
+ " strb r6, [r0, #0x2]\n"
+ " strb r6, [r0, #0x3]\n"
+ " strb r6, [r0, #0x5]\n"
+ " strb r6, [r0, #0x7]\n"
+ " strb r6, [r0, #0xa]\n"
+ " strb r6, [r0, #0x8]\n"
+ " ldr r4, ._659 + 80\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x6c\n"
+ " mov r2, #0x74\n"
+ " mov r3, #0x0\n"
+ " bl CreateSprite\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " ldr r6, ._659 + 84\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r6\n"
+ " strh r5, [r0, #0x2e]\n"
+ " mov r1, #0x0\n"
+ " bl StartSpriteAnim\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x6c\n"
+ " mov r2, #0x74\n"
+ " mov r3, #0x0\n"
+ " bl CreateSprite\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r6\n"
+ " mov r1, #0x1\n"
+ " strh r1, [r0, #0x2e]\n"
+ " bl StartSpriteAnim\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x6c\n"
+ " mov r2, #0x74\n"
+ " mov r3, #0x0\n"
+ " bl CreateSprite\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r6\n"
+ " mov r1, #0x2\n"
+ " strh r1, [r0, #0x2e]\n"
+ " bl StartSpriteAnim\n"
+ " add sp, sp, #0x8\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._660:\n"
+ " .align 2, 0\n"
+ "._659:\n"
+ " .word byte_83F88EC\n"
+ " .word 0x600e000\n"
+ " .word 0x40000d4\n"
+ " .word 0x80000400\n"
+ " .word word_83F888C\n"
+ " .word 0x7fff\n"
+ " .word 0x4000040\n"
+ " .word 0x4000048\n"
+ " .word 0x4000052\n"
+ " .word 0x4000208\n"
+ " .word 0x4000200\n"
+ " .word debug_80C3758+1\n"
+ " .word debug_80C370C+1\n"
+ " .word 0x4000008\n"
+ " .word 0x1f0b\n"
+ " .word 0x1e0a\n"
+ " .word debug_80C6B00+1\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word +0x2018000\n"
+ " .word 0x115\n"
+ " .word unk_83F8868+0xc\n"
+ " .word gSprites\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C6B00()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " add sp, sp, #0xffffffec\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ " ldr r1, ._666\n"
+ " mov r0, sp\n"
+ " mov r2, #0x12\n"
+ " bl memcpy\n"
+ " mov r0, #0xa\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xf\n"
+ " mov r3, #0x7\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x9\n"
+ " mov r3, #0x9\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0x9\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r0, #0x10\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x7\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r0, ._666 + 4\n"
+ " mov r1, #0x11\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._666 + 8\n"
+ " mov r1, #0x1b\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._666 + 12\n"
+ " mov r1, #0x11\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " mov r0, #0xa\n"
+ " mov r1, #0x8\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0xc\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r2, #0x0\n"
+ " ldr r4, ._666 + 16\n"
+ " ldr r0, ._666 + 20\n"
+ " add r3, r0, #0\n"
+ "._661:\n"
+ " lsl r0, r2, #0x1\n"
+ " add r0, r0, r4\n"
+ " add r1, r2, r3\n"
+ " strh r1, [r0]\n"
+ " add r0, r2, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " cmp r2, #0xe\n"
+ " bls ._661 @cond_branch\n"
+ " mov r2, #0x0\n"
+ " ldr r5, ._666 + 24\n"
+ " lsl r6, r7, #0x2\n"
+ " mov r8, r6\n"
+ " ldr r4, ._666 + 28\n"
+ " ldr r0, ._666 + 32\n"
+ " add r3, r0, #0\n"
+ "._662:\n"
+ " lsl r0, r2, #0x1\n"
+ " add r0, r0, r4\n"
+ " add r1, r2, r3\n"
+ " strh r1, [r0]\n"
+ " add r0, r2, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " cmp r2, #0xe\n"
+ " bls ._662 @cond_branch\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0xa\n"
+ " bl MenuPrint\n"
+ " mov r0, #0xa\n"
+ " mov r1, #0xd\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r1, sp\n"
+ " mov r0, #0x23\n"
+ " strb r0, [r1]\n"
+ " mov r2, #0x0\n"
+ " ldr r4, ._666 + 36\n"
+ " mov r5, #0x93\n"
+ " lsl r5, r5, #0x8\n"
+ " add r3, r5, #0\n"
+ "._663:\n"
+ " lsl r1, r2, #0x1\n"
+ " add r1, r1, r4\n"
+ " mov r6, sp\n"
+ " add r0, r6, r2\n"
+ " ldrb r0, [r0]\n"
+ " add r0, r0, r3\n"
+ " strh r0, [r1]\n"
+ " add r0, r2, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " cmp r2, #0x11\n"
+ " bls ._663 @cond_branch\n"
+ " mov r1, sp\n"
+ " mov r0, #0x24\n"
+ " strb r0, [r1]\n"
+ " mov r2, #0x0\n"
+ " ldr r5, ._666 + 40\n"
+ " ldr r4, ._666 + 44\n"
+ " mov r0, #0x93\n"
+ " lsl r0, r0, #0x8\n"
+ " add r3, r0, #0\n"
+ "._664:\n"
+ " lsl r1, r2, #0x1\n"
+ " add r1, r1, r4\n"
+ " mov r6, sp\n"
+ " add r0, r6, r2\n"
+ " ldrb r0, [r0]\n"
+ " add r0, r0, r3\n"
+ " strh r0, [r1]\n"
+ " add r0, r2, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " cmp r2, #0x11\n"
+ " bls ._664 @cond_branch\n"
+ " mov r1, sp\n"
+ " mov r0, #0x25\n"
+ " strb r0, [r1]\n"
+ " mov r2, #0x0\n"
+ " ldr r4, ._666 + 48\n"
+ " mov r0, #0x93\n"
+ " lsl r0, r0, #0x8\n"
+ " add r3, r0, #0\n"
+ "._665:\n"
+ " lsl r1, r2, #0x1\n"
+ " add r1, r1, r4\n"
+ " mov r6, sp\n"
+ " add r0, r6, r2\n"
+ " ldrb r0, [r0]\n"
+ " add r0, r0, r3\n"
+ " strh r0, [r1]\n"
+ " add r0, r2, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " cmp r2, #0x11\n"
+ " bls ._665 @cond_branch\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x11\n"
+ " bl MenuPrint\n"
+ " ldr r1, ._666 + 52\n"
+ " ldr r2, ._666 + 56\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " ldr r5, ._666 + 60\n"
+ " add r0, r5, #0\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._666 + 64\n"
+ " mov r6, r8\n"
+ " add r0, r6, r7\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._666 + 68\n"
+ " str r1, [r0]\n"
+ " add sp, sp, #0x14\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._667:\n"
+ " .align 2, 0\n"
+ "._666:\n"
+ " .word gUnknown_Debug_083F8815\n"
+ " .word gUnknown_Debug_083F87D0\n"
+ " .word gUnknown_Debug_083F87D8\n"
+ " .word gUnknown_Debug_083F87E0\n"
+ " .word 0x600fa56\n"
+ " .word 0xa311\n"
+ " .word gUnknown_Debug_083F87F4\n"
+ " .word 0x600f256\n"
+ " .word 0x8301\n"
+ " .word 0x600f396\n"
+ " .word gUnknown_Debug_083F8801\n"
+ " .word 0x600f3d6\n"
+ " .word 0x600f416\n"
+ " .word 0x4000040\n"
+ " .word 0x51ef\n"
+ " .word 0x699f\n"
+ " .word gTasks\n"
+ " .word debug_80C6CB8+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C6CB8()
+{
+ 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, #0xfffffff4\n"
+ " mov sl, r0\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov sl, r0\n"
+ " ldr r5, ._668\n"
+ " ldr r4, [r5]\n"
+ " ldrh r2, [r4]\n"
+ " lsl r0, r2, #0x3\n"
+ " ldr r1, ._668 + 4\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._668 + 8\n"
+ " lsl r2, r2, #0x2\n"
+ " add r2, r2, r1\n"
+ " ldrb r1, [r2]\n"
+ " ldrb r2, [r2, #0x1]\n"
+ " ldr r3, ._668 + 12\n"
+ " mov r8, r3\n"
+ " ldr r6, [r3]\n"
+ " str r6, [sp, #0x8]\n"
+ " ldr r3, [r3, #0x4]\n"
+ " str r3, [sp]\n"
+ " ldrh r3, [r4]\n"
+ " str r3, [sp, #0x4]\n"
+ " add r3, r6, #0\n"
+ " bl DecompressPicFromTable_2\n"
+ " ldr r0, [r5]\n"
+ " ldrh r0, [r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " ldr r7, ._668 + 16\n"
+ " add r0, r0, r7\n"
+ " bl LoadCompressedObjectPalette\n"
+ " ldr r0, [r5]\n"
+ " ldrh r0, [r0]\n"
+ " mov r1, #0x1\n"
+ " bl GetMonSpriteTemplate_803C56C\n"
+ " ldr r0, ._668 + 20\n"
+ " mov r1, #0x28\n"
+ " mov r2, #0x28\n"
+ " mov r3, #0x0\n"
+ " bl CreateSprite\n"
+ " ldr r1, [r5]\n"
+ " strb r0, [r1, #0x2]\n"
+ " ldr r2, [r5]\n"
+ " ldrb r1, [r2, #0x2]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._668 + 24\n"
+ " add r0, r0, r1\n"
+ " ldr r3, ._668 + 28\n"
+ " mov r9, r3\n"
+ " str r3, [r0]\n"
+ " ldrb r0, [r2, #0x2]\n"
+ " lsl r1, r0, #0x4\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x2\n"
+ " ldr r6, ._668 + 32\n"
+ " add r1, r1, r6\n"
+ " ldrb r2, [r1, #0x5]\n"
+ " mov r6, #0xd\n"
+ " neg r6, r6\n"
+ " add r0, r6, #0\n"
+ " and r0, r0, r2\n"
+ " strb r0, [r1, #0x5]\n"
+ " ldr r4, [r5]\n"
+ " ldrh r2, [r4]\n"
+ " lsl r0, r2, #0x3\n"
+ " ldr r1, ._668 + 36\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._668 + 40\n"
+ " lsl r2, r2, #0x2\n"
+ " add r2, r2, r1\n"
+ " ldrb r1, [r2]\n"
+ " ldrb r2, [r2, #0x1]\n"
+ " mov r7, r8\n"
+ " ldr r3, [r7, #0x8]\n"
+ " str r3, [sp]\n"
+ " ldrh r3, [r4]\n"
+ " str r3, [sp, #0x4]\n"
+ " ldr r3, [sp, #0x8]\n"
+ " bl DecompressPicFromTable_2\n"
+ " ldr r0, [r5]\n"
+ " ldrh r0, [r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " ldr r1, ._668 + 16\n"
+ " add r0, r0, r1\n"
+ " bl LoadCompressedObjectPalette\n"
+ " ldr r0, [r5]\n"
+ " ldrh r0, [r0]\n"
+ " mov r1, #0x2\n"
+ " bl GetMonSpriteTemplate_803C56C\n"
+ " ldr r0, ._668 + 20\n"
+ " mov r1, #0x28\n"
+ " mov r2, #0x78\n"
+ " mov r3, #0x0\n"
+ " bl CreateSprite\n"
+ " ldr r1, [r5]\n"
+ " strb r0, [r1, #0x3]\n"
+ " ldr r2, [r5]\n"
+ " ldrb r1, [r2, #0x3]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r3, ._668 + 24\n"
+ " add r0, r0, r3\n"
+ " mov r7, r9\n"
+ " str r7, [r0]\n"
+ " ldrb r1, [r2, #0x3]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._668 + 32\n"
+ " add r0, r0, r1\n"
+ " ldrb r1, [r0, #0x5]\n"
+ " and r6, r6, r1\n"
+ " strb r6, [r0, #0x5]\n"
+ " ldr r0, [r5]\n"
+ " ldrh r0, [r0]\n"
+ " ldr r1, ._668 + 44\n"
+ " mov r2, #0x0\n"
+ " str r2, [sp]\n"
+ " str r2, [sp, #0x4]\n"
+ " mov r2, #0x68\n"
+ " mov r3, #0x2c\n"
+ " bl CreateMonIcon\n"
+ " ldr r1, [r5]\n"
+ " strb r0, [r1, #0x4]\n"
+ " ldr r0, [r5]\n"
+ " ldrh r0, [r0]\n"
+ " bl SpeciesToNationalPokedexNum\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " mov r2, #0xff\n"
+ " lsl r2, r2, #0x2\n"
+ " mov r1, #0x2\n"
+ " bl sub_8091738\n"
+ " ldr r1, ._668 + 48\n"
+ " ldr r3, ._668 + 52\n"
+ " add r0, r3, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " ldr r6, ._668 + 56\n"
+ " add r0, r6, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x3e\n"
+ " ldr r7, ._668 + 60\n"
+ " add r0, r7, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " ldr r2, ._668 + 64\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " ldr r0, [r5]\n"
+ " ldrh r0, [r0]\n"
+ " mov r1, #0x11\n"
+ " mov r2, #0x3\n"
+ " bl debug_80C3800\n"
+ " ldr r0, [r5]\n"
+ " ldrh r0, [r0]\n"
+ " mov r1, #0x1a\n"
+ " mov r2, #0x5\n"
+ " bl debug_80C376C\n"
+ " ldr r2, [r5]\n"
+ " ldrb r1, [r2, #0x2]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r3, ._668 + 32\n"
+ " add r0, r0, r3\n"
+ " ldrb r0, [r0, #0x5]\n"
+ " lsr r0, r0, #0x4\n"
+ " strb r0, [r2, #0x6]\n"
+ " ldr r0, [r5]\n"
+ " ldrb r0, [r0, #0x6]\n"
+ " lsl r0, r0, #0x5\n"
+ " ldr r4, ._668 + 68\n"
+ " add r0, r0, r4\n"
+ " ldr r6, ._668 + 72\n"
+ " add r1, r4, r6\n"
+ " mov r2, #0x10\n"
+ " bl CpuSet\n"
+ " ldr r0, [r5]\n"
+ " ldrb r0, [r0, #0x6]\n"
+ " lsl r0, r0, #0x5\n"
+ " add r0, r0, r4\n"
+ " ldr r1, ._668 + 76\n"
+ " mov r2, #0x10\n"
+ " bl CpuSet\n"
+ " ldr r1, ._668 + 80\n"
+ " mov r7, sl\n"
+ " lsl r0, r7, #0x2\n"
+ " add r0, r0, sl\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._668 + 84\n"
+ " str r1, [r0]\n"
+ " ldr r0, [r5]\n"
+ " mov r1, #0x0\n"
+ " strb r1, [r0, #0x9]\n"
+ " bl StopCryAndClearCrySongs\n"
+ " ldr r0, [r5]\n"
+ " ldrh r0, [r0]\n"
+ " mov r1, #0x0\n"
+ " bl PlayCry1\n"
+ " add sp, sp, #0xc\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"
+ "._669:\n"
+ " .align 2, 0\n"
+ "._668:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word gMonFrontPicTable\n"
+ " .word gMonFrontPicCoords\n"
+ " .word gUnknown_081FAF4C\n"
+ " .word gMonPaletteTable\n"
+ " .word gUnknown_02024E8C\n"
+ " .word gSprites+0x1c\n"
+ " .word debug_69+1\n"
+ " .word gSprites\n"
+ " .word gMonBackPicTable\n"
+ " .word gMonBackPicCoords\n"
+ " .word sub_809D62C+1\n"
+ " .word 0x600f858\n"
+ " .word 0xf3fc\n"
+ " .word 0xf3fd\n"
+ " .word 0xf3fe\n"
+ " .word 0xf3ff\n"
+ " .word gPlttBufferUnfaded+0x200\n"
+ " .word 0xffffff00\n"
+ " .word gPlttBufferFaded+0x100\n"
+ " .word gTasks\n"
+ " .word debug_80C6EE8+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C6EE8()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add r6, r0, #0\n"
+ " lsl r6, r6, #0x18\n"
+ " lsr r6, r6, #0x18\n"
+ " ldr r4, ._670\n"
+ " ldr r5, ._670 + 4\n"
+ " ldr r1, [r5]\n"
+ " add r1, r1, #0x10\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x10\n"
+ " bl CpuSet\n"
+ " ldr r0, ._670 + 8\n"
+ " add r4, r4, r0\n"
+ " ldr r3, [r5]\n"
+ " ldrb r0, [r3, #0x7]\n"
+ " add r0, r0, #0x81\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r0, r4\n"
+ " ldrh r4, [r0]\n"
+ " mov r1, #0x1f\n"
+ " and r1, r1, r4\n"
+ " ldrb r2, [r3, #0xc]\n"
+ " mov r0, #0x20\n"
+ " neg r0, r0\n"
+ " and r0, r0, r2\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r3, #0xc]\n"
+ " ldr r3, [r5]\n"
+ " mov r1, #0xf8\n"
+ " lsl r1, r1, #0x2\n"
+ " and r1, r1, r4\n"
+ " ldrh r2, [r3, #0xc]\n"
+ " ldr r0, ._670 + 12\n"
+ " and r0, r0, r2\n"
+ " orr r0, r0, r1\n"
+ " strh r0, [r3, #0xc]\n"
+ " mov r1, #0xf8\n"
+ " lsl r1, r1, #0x7\n"
+ " and r1, r1, r4\n"
+ " lsr r1, r1, #0x8\n"
+ " ldrb r2, [r3, #0xd]\n"
+ " mov r0, #0x7d\n"
+ " neg r0, r0\n"
+ " and r0, r0, r2\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r3, #0xd]\n"
+ " ldr r2, [r5]\n"
+ " ldrb r1, [r2, #0xd]\n"
+ " mov r0, #0x7f\n"
+ " and r0, r0, r1\n"
+ " strb r0, [r2, #0xd]\n"
+ " ldr r0, [r5]\n"
+ " ldrb r0, [r0, #0x7]\n"
+ " add r0, r0, #0x1\n"
+ " mov r1, #0xb\n"
+ " mov r2, #0xa\n"
+ " mov r3, #0x2\n"
+ " bl debug_80C68CC\n"
+ " ldr r0, ._670 + 16\n"
+ " mov r1, #0xd\n"
+ " mov r2, #0xa\n"
+ " bl MenuPrint\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0xe\n"
+ " mov r2, #0xa\n"
+ " mov r3, #0x4\n"
+ " bl debug_80C68CC\n"
+ " ldr r1, ._670 + 20\n"
+ " lsl r0, r6, #0x2\n"
+ " add r0, r0, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._670 + 24\n"
+ " str r1, [r0]\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._671:\n"
+ " .align 2, 0\n"
+ "._670:\n"
+ " .word gPlttBufferUnfaded+0x100\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word 0xffffff00\n"
+ " .word 0xfffffc1f\n"
+ " .word gUnknown_Debug_083F8813\n"
+ " .word gTasks\n"
+ " .word debug_80C6FA8+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C6FA8()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " ldr r1, ._674\n"
+ " ldrh r2, [r1, #0x2e]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r2\n"
+ " add r4, r1, #0\n"
+ " cmp r0, #0\n"
+ " beq ._672 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " mov r1, #0x0\n"
+ " str r1, [sp]\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x10\n"
+ " bl BeginNormalPaletteFade\n"
+ " ldr r0, ._674 + 4\n"
+ " bl SetMainCallback2\n"
+ " ldr r1, ._674 + 8\n"
+ " lsl r0, r6, #0x2\n"
+ " add r0, r0, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._674 + 12\n"
+ " str r1, [r0]\n"
+ " b ._703\n"
+ "._675:\n"
+ " .align 2, 0\n"
+ "._674:\n"
+ " .word gMain\n"
+ " .word debug_80C370C+1\n"
+ " .word gTasks\n"
+ " .word debug_80C373C+1\n"
+ "._672:\n"
+ " ldrh r1, [r4, #0x30]\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._676 @cond_branch\n"
+ " ldr r4, ._678\n"
+ " ldr r0, [r4]\n"
+ " ldrh r1, [r0]\n"
+ " mov r0, #0x0\n"
+ " b ._677\n"
+ "._679:\n"
+ " .align 2, 0\n"
+ "._678:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ "._676:\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._680 @cond_branch\n"
+ " ldr r4, ._682\n"
+ " ldr r0, [r4]\n"
+ " ldrh r1, [r0]\n"
+ " mov r0, #0x1\n"
+ "._677:\n"
+ " bl debug_80C3878\n"
+ " ldr r1, [r4]\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._682 + 4\n"
+ " lsl r0, r6, #0x2\n"
+ " add r0, r0, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._682 + 8\n"
+ " str r1, [r0]\n"
+ " b ._703\n"
+ "._683:\n"
+ " .align 2, 0\n"
+ "._682:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word gTasks\n"
+ " .word debug_80C71FC+1\n"
+ "._680:\n"
+ " mov r3, #0x1\n"
+ " and r3, r3, r2\n"
+ " cmp r3, #0\n"
+ " beq ._684 @cond_branch\n"
+ " ldr r0, ._686\n"
+ " ldr r1, [r0]\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1, #0x5]\n"
+ " ldr r1, ._686 + 4\n"
+ " ldr r2, ._686 + 8\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " ldr r2, ._686 + 12\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._686 + 16\n"
+ " lsl r0, r6, #0x2\n"
+ " add r0, r0, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._686 + 20\n"
+ " str r1, [r0]\n"
+ " b ._703\n"
+ "._687:\n"
+ " .align 2, 0\n"
+ "._686:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word 0x4000040\n"
+ " .word 0x51ef\n"
+ " .word 0x4167\n"
+ " .word gTasks\n"
+ " .word debug_80C7294+1\n"
+ "._684:\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._689 @cond_branch\n"
+ " ldr r1, ._691\n"
+ " ldr r2, [r1]\n"
+ " ldrb r0, [r2, #0x7]\n"
+ " cmp r0, #0xd\n"
+ " bhi ._689 @cond_branch\n"
+ " lsl r0, r0, #0x1\n"
+ " ldr r2, ._691 + 4\n"
+ " add r0, r0, r2\n"
+ " strh r3, [r0]\n"
+ " ldr r1, [r1]\n"
+ " ldrb r0, [r1, #0x7]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1, #0x7]\n"
+ " b ._695\n"
+ "._692:\n"
+ " .align 2, 0\n"
+ "._691:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word 0x5000102\n"
+ "._689:\n"
+ " ldrh r1, [r4, #0x30]\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._694 @cond_branch\n"
+ " ldr r2, ._696\n"
+ " ldr r1, [r2]\n"
+ " ldrb r0, [r1, #0x7]\n"
+ " cmp r0, #0\n"
+ " beq ._694 @cond_branch\n"
+ " lsl r0, r0, #0x1\n"
+ " ldr r1, ._696 + 4\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x0\n"
+ " strh r1, [r0]\n"
+ " ldr r1, [r2]\n"
+ " ldrb r0, [r1, #0x7]\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r1, #0x7]\n"
+ " b ._695\n"
+ "._697:\n"
+ " .align 2, 0\n"
+ "._696:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word 0x5000102\n"
+ "._694:\n"
+ " ldrh r1, [r4, #0x2e]\n"
+ " mov r0, #0x8\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._698 @cond_branch\n"
+ " ldr r4, ._701\n"
+ " ldr r2, [r4]\n"
+ " ldrb r0, [r2, #0x9]\n"
+ " mov r1, #0x1\n"
+ " eor r0, r0, r1\n"
+ " strb r0, [r2, #0x9]\n"
+ " ldr r1, [r4]\n"
+ " ldrb r0, [r1, #0x9]\n"
+ " cmp r0, #0\n"
+ " beq ._699 @cond_branch\n"
+ " ldrh r0, [r1]\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x0\n"
+ " bl species_and_otid_get_pal\n"
+ " ldr r1, [r4]\n"
+ " ldrb r1, [r1, #0x6]\n"
+ " lsl r1, r1, #0x14\n"
+ " mov r2, #0x80\n"
+ " lsl r2, r2, #0x11\n"
+ " add r1, r1, r2\n"
+ " lsr r1, r1, #0x10\n"
+ " mov r2, #0x20\n"
+ " bl LoadCompressedPalette\n"
+ " b ._700\n"
+ "._702:\n"
+ " .align 2, 0\n"
+ "._701:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ "._699:\n"
+ " ldrh r0, [r1]\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x9\n"
+ " bl species_and_otid_get_pal\n"
+ " ldr r1, [r4]\n"
+ " ldrb r1, [r1, #0x6]\n"
+ " lsl r1, r1, #0x14\n"
+ " mov r2, #0x80\n"
+ " lsl r2, r2, #0x11\n"
+ " add r1, r1, r2\n"
+ " lsr r1, r1, #0x10\n"
+ " mov r2, #0x20\n"
+ " bl LoadCompressedPalette\n"
+ "._700:\n"
+ " ldr r5, ._704\n"
+ " ldr r0, [r5]\n"
+ " ldrb r0, [r0, #0x6]\n"
+ " lsl r0, r0, #0x5\n"
+ " ldr r4, ._704 + 4\n"
+ " add r0, r0, r4\n"
+ " ldr r2, ._704 + 8\n"
+ " add r1, r4, r2\n"
+ " mov r2, #0x10\n"
+ " bl CpuSet\n"
+ " ldr r0, [r5]\n"
+ " ldrb r0, [r0, #0x6]\n"
+ " lsl r0, r0, #0x5\n"
+ " add r0, r0, r4\n"
+ " ldr r1, ._704 + 12\n"
+ " mov r2, #0x10\n"
+ " bl CpuSet\n"
+ "._695:\n"
+ " ldr r1, ._704 + 16\n"
+ " lsl r0, r6, #0x2\n"
+ " add r0, r0, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._704 + 20\n"
+ " str r1, [r0]\n"
+ " b ._703\n"
+ "._705:\n"
+ " .align 2, 0\n"
+ "._704:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word gPlttBufferUnfaded+0x200\n"
+ " .word 0xffffff00\n"
+ " .word gPlttBufferFaded+0x100\n"
+ " .word gTasks\n"
+ " .word debug_80C6EE8+1\n"
+ "._698:\n"
+ " mov r0, #0x4\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._706 @cond_branch\n"
+ " bl StopCryAndClearCrySongs\n"
+ " ldr r0, ._707\n"
+ " ldr r0, [r0]\n"
+ " ldrh r0, [r0]\n"
+ " mov r1, #0x0\n"
+ " bl PlayCry1\n"
+ "._706:\n"
+ " ldr r2, ._707\n"
+ " ldr r1, [r2]\n"
+ " ldrb r0, [r1, #0x8]\n"
+ " add r0, r0, #0x4\n"
+ " strb r0, [r1, #0x8]\n"
+ " ldr r3, [r2]\n"
+ " ldrb r1, [r3, #0x8]\n"
+ " mov r0, #0x1f\n"
+ " and r0, r0, r1\n"
+ " strb r0, [r3, #0x8]\n"
+ " ldr r0, [r2]\n"
+ " ldrb r1, [r0, #0x7]\n"
+ " lsl r1, r1, #0x1\n"
+ " ldr r2, ._707 + 4\n"
+ " add r1, r1, r2\n"
+ " ldr r2, ._707 + 8\n"
+ " ldrb r0, [r0, #0x8]\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r0, r2\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ "._703:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._708:\n"
+ " .align 2, 0\n"
+ "._707:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word 0x5000142\n"
+ " .word gUnknown_Debug_083F8790\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C71FC()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add r5, r0, #0\n"
+ " lsl r5, r5, #0x18\n"
+ " lsr r5, r5, #0x18\n"
+ " ldr r6, ._709\n"
+ " ldr r4, ._709 + 4\n"
+ " ldr r0, [r4]\n"
+ " ldrb r1, [r0, #0x2]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r6\n"
+ " ldrb r0, [r0, #0x5]\n"
+ " lsr r0, r0, #0x4\n"
+ " bl GetSpritePaletteTagByPaletteNum\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " bl FreeSpritePaletteByTag\n"
+ " ldr r0, [r4]\n"
+ " ldrb r1, [r0, #0x2]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r6\n"
+ " bl DestroySprite\n"
+ " ldr r0, [r4]\n"
+ " ldrb r1, [r0, #0x3]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r6\n"
+ " ldrb r0, [r0, #0x5]\n"
+ " lsr r0, r0, #0x4\n"
+ " bl GetSpritePaletteTagByPaletteNum\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " bl FreeSpritePaletteByTag\n"
+ " ldr r0, [r4]\n"
+ " ldrb r1, [r0, #0x3]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r6\n"
+ " bl DestroySprite\n"
+ " ldr r0, [r4]\n"
+ " ldrb r1, [r0, #0x4]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r6\n"
+ " bl sub_809D510\n"
+ " ldr r1, ._709 + 8\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._709 + 12\n"
+ " str r1, [r0]\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._710:\n"
+ " .align 2, 0\n"
+ "._709:\n"
+ " .word gSprites\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word gTasks\n"
+ " .word debug_80C6CB8+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C7294()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ " ldr r0, ._713\n"
+ " ldrh r2, [r0, #0x2e]\n"
+ " mov r1, #0x1\n"
+ " and r1, r1, r2\n"
+ " add r3, r0, #0\n"
+ " cmp r1, #0\n"
+ " beq ._711 @cond_branch\n"
+ " ldr r0, ._713 + 4\n"
+ " ldr r1, [r0]\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1, #0x5]\n"
+ " ldr r1, ._713 + 8\n"
+ " ldr r2, ._713 + 12\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " ldr r2, ._713 + 16\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " b ._712\n"
+ "._714:\n"
+ " .align 2, 0\n"
+ "._713:\n"
+ " .word gMain\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word 0x4000040\n"
+ " .word 0x51ef\n"
+ " .word 0x699f\n"
+ "._711:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._715 @cond_branch\n"
+ " ldr r6, ._717\n"
+ " ldr r0, [r6]\n"
+ " strb r1, [r0, #0x5]\n"
+ " ldr r1, ._717 + 4\n"
+ " ldr r2, ._717 + 8\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " ldr r2, ._717 + 12\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " ldr r0, [r6]\n"
+ " add r0, r0, #0x10\n"
+ " ldr r4, ._717 + 16\n"
+ " add r1, r4, #0\n"
+ " mov r2, #0x10\n"
+ " bl CpuSet\n"
+ " ldr r0, [r6]\n"
+ " add r0, r0, #0x10\n"
+ " ldr r5, ._717 + 20\n"
+ " add r1, r5, #0\n"
+ " mov r2, #0x10\n"
+ " bl CpuSet\n"
+ " ldr r1, [r6]\n"
+ " add r0, r1, #0\n"
+ " add r0, r0, #0x10\n"
+ " ldrb r1, [r1, #0x6]\n"
+ " lsl r1, r1, #0x5\n"
+ " mov r2, #0x80\n"
+ " lsl r2, r2, #0x1\n"
+ " add r4, r4, r2\n"
+ " add r1, r1, r4\n"
+ " mov r2, #0x10\n"
+ " bl CpuSet\n"
+ " ldr r1, [r6]\n"
+ " add r0, r1, #0\n"
+ " add r0, r0, #0x10\n"
+ " ldrb r1, [r1, #0x6]\n"
+ " lsl r1, r1, #0x5\n"
+ " mov r2, #0x80\n"
+ " lsl r2, r2, #0x1\n"
+ " add r5, r5, r2\n"
+ " add r1, r1, r5\n"
+ " mov r2, #0x10\n"
+ " bl CpuSet\n"
+ "._712:\n"
+ " ldr r1, ._717 + 24\n"
+ " lsl r0, r7, #0x2\n"
+ " add r0, r0, r7\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._717 + 28\n"
+ " str r1, [r0]\n"
+ " b ._754\n"
+ "._718:\n"
+ " .align 2, 0\n"
+ "._717:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word 0x4000040\n"
+ " .word 0x51ef\n"
+ " .word 0x699f\n"
+ " .word gPlttBufferUnfaded+0x100\n"
+ " .word gPlttBufferFaded+0x100\n"
+ " .word gTasks\n"
+ " .word debug_80C6EE8+1\n"
+ "._715:\n"
+ " ldrh r1, [r3, #0x30]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._720 @cond_branch\n"
+ " ldr r0, ._722\n"
+ " ldr r1, [r0]\n"
+ " ldrb r0, [r1, #0xa]\n"
+ " cmp r0, #0x1\n"
+ " bhi ._720 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1, #0xa]\n"
+ " b ._754\n"
+ "._723:\n"
+ " .align 2, 0\n"
+ "._722:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ "._720:\n"
+ " ldrh r1, [r3, #0x30]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._725 @cond_branch\n"
+ " ldr r0, ._727\n"
+ " ldr r1, [r0]\n"
+ " ldrb r0, [r1, #0xa]\n"
+ " cmp r0, #0\n"
+ " beq ._725 @cond_branch\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r1, #0xa]\n"
+ " b ._754\n"
+ "._728:\n"
+ " .align 2, 0\n"
+ "._727:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ "._725:\n"
+ " ldrh r1, [r3, #0x30]\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._729 @cond_branch\n"
+ " ldr r0, ._734\n"
+ " ldr r2, [r0]\n"
+ " ldrb r0, [r2, #0xa]\n"
+ " cmp r0, #0x1\n"
+ " beq ._730 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bgt ._731 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._732 @cond_branch\n"
+ " b ._754\n"
+ "._735:\n"
+ " .align 2, 0\n"
+ "._734:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ "._731:\n"
+ " cmp r0, #0x2\n"
+ " beq ._736 @cond_branch\n"
+ " b ._754\n"
+ "._732:\n"
+ " ldrb r3, [r2, #0xc]\n"
+ " lsl r1, r3, #0x1b\n"
+ " lsr r0, r1, #0x1b\n"
+ " cmp r0, #0x1e\n"
+ " bhi ._761 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " mov r1, #0x1f\n"
+ " and r0, r0, r1\n"
+ " mov r1, #0x20\n"
+ " neg r1, r1\n"
+ " and r1, r1, r3\n"
+ " orr r1, r1, r0\n"
+ " strb r1, [r2, #0xc]\n"
+ " b ._761\n"
+ "._730:\n"
+ " ldrh r3, [r2, #0xc]\n"
+ " lsl r1, r3, #0x16\n"
+ " lsr r0, r1, #0x1b\n"
+ " cmp r0, #0x1e\n"
+ " bhi ._761 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " mov r1, #0x1f\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x5\n"
+ " ldr r1, ._742\n"
+ " and r1, r1, r3\n"
+ " orr r1, r1, r0\n"
+ " strh r1, [r2, #0xc]\n"
+ " b ._761\n"
+ "._743:\n"
+ " .align 2, 0\n"
+ "._742:\n"
+ " .word 0xfffffc1f\n"
+ "._736:\n"
+ " ldrb r3, [r2, #0xd]\n"
+ " lsl r1, r3, #0x19\n"
+ " lsr r0, r1, #0x1b\n"
+ " cmp r0, #0x1e\n"
+ " bhi ._761 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " mov r1, #0x1f\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " mov r1, #0x7d\n"
+ " neg r1, r1\n"
+ " and r1, r1, r3\n"
+ " orr r1, r1, r0\n"
+ " strb r1, [r2, #0xd]\n"
+ " b ._761\n"
+ "._729:\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._754 @cond_branch\n"
+ " ldr r0, ._751\n"
+ " ldr r3, [r0]\n"
+ " ldrb r0, [r3, #0xa]\n"
+ " cmp r0, #0x1\n"
+ " beq ._747 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bgt ._748 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._749 @cond_branch\n"
+ " b ._754\n"
+ "._752:\n"
+ " .align 2, 0\n"
+ "._751:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ "._748:\n"
+ " cmp r0, #0x2\n"
+ " beq ._753 @cond_branch\n"
+ " b ._754\n"
+ "._749:\n"
+ " ldrb r2, [r3, #0xc]\n"
+ " mov r0, #0x1f\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._761 @cond_branch\n"
+ " lsl r0, r2, #0x1b\n"
+ " lsr r0, r0, #0x1b\n"
+ " sub r0, r0, #0x1\n"
+ " mov r1, #0x1f\n"
+ " and r0, r0, r1\n"
+ " mov r1, #0x20\n"
+ " neg r1, r1\n"
+ " and r1, r1, r2\n"
+ " orr r1, r1, r0\n"
+ " strb r1, [r3, #0xc]\n"
+ " b ._761\n"
+ "._747:\n"
+ " ldrh r2, [r3, #0xc]\n"
+ " mov r0, #0xf8\n"
+ " lsl r0, r0, #0x2\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._761 @cond_branch\n"
+ " lsl r0, r2, #0x16\n"
+ " lsr r0, r0, #0x1b\n"
+ " sub r0, r0, #0x1\n"
+ " mov r1, #0x1f\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x5\n"
+ " ldr r1, ._759\n"
+ " and r1, r1, r2\n"
+ " orr r1, r1, r0\n"
+ " strh r1, [r3, #0xc]\n"
+ " b ._761\n"
+ "._760:\n"
+ " .align 2, 0\n"
+ "._759:\n"
+ " .word 0xfffffc1f\n"
+ "._753:\n"
+ " ldrb r2, [r3, #0xd]\n"
+ " mov r0, #0x7c\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._761 @cond_branch\n"
+ " lsl r0, r2, #0x19\n"
+ " lsr r0, r0, #0x1b\n"
+ " sub r0, r0, #0x1\n"
+ " mov r1, #0x1f\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " mov r1, #0x7d\n"
+ " neg r1, r1\n"
+ " and r1, r1, r2\n"
+ " orr r1, r1, r0\n"
+ " strb r1, [r3, #0xd]\n"
+ "._761:\n"
+ " ldr r0, ._762\n"
+ " lsl r1, r7, #0x2\n"
+ " add r1, r1, r7\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._762 + 4\n"
+ " str r0, [r1]\n"
+ "._754:\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._763:\n"
+ " .align 2, 0\n"
+ "._762:\n"
+ " .word gTasks\n"
+ " .word debug_80C74E4+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C74E4()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " mov r6, r8\n"
+ " push {r6}\n"
+ " add r5, r0, #0\n"
+ " lsl r5, r5, #0x18\n"
+ " lsr r5, r5, #0x18\n"
+ " ldr r0, ._764\n"
+ " ldr r3, [r0]\n"
+ " ldrb r0, [r3, #0xc]\n"
+ " lsl r0, r0, #0x1b\n"
+ " lsr r0, r0, #0x1b\n"
+ " ldrh r2, [r3, #0xc]\n"
+ " mov r1, #0xf8\n"
+ " lsl r1, r1, #0x2\n"
+ " and r1, r1, r2\n"
+ " add r0, r0, r1\n"
+ " ldrb r1, [r3, #0xd]\n"
+ " lsl r1, r1, #0x19\n"
+ " lsr r1, r1, #0x1b\n"
+ " lsl r1, r1, #0xa\n"
+ " add r0, r0, r1\n"
+ " ldr r6, ._764 + 4\n"
+ " ldrb r1, [r3, #0x7]\n"
+ " add r1, r1, #0x81\n"
+ " lsl r1, r1, #0x1\n"
+ " add r1, r1, r6\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._764 + 8\n"
+ " mov r8, r1\n"
+ " ldrb r1, [r3, #0x7]\n"
+ " add r1, r1, #0x81\n"
+ " lsl r1, r1, #0x1\n"
+ " add r1, r1, r8\n"
+ " strh r0, [r1]\n"
+ " ldrb r1, [r3, #0x6]\n"
+ " lsl r1, r1, #0x4\n"
+ " ldrb r2, [r3, #0x7]\n"
+ " ldr r4, ._764 + 12\n"
+ " add r2, r2, r4\n"
+ " add r1, r1, r2\n"
+ " lsl r1, r1, #0x1\n"
+ " add r1, r1, r6\n"
+ " strh r0, [r1]\n"
+ " ldrb r1, [r3, #0x6]\n"
+ " lsl r1, r1, #0x4\n"
+ " ldrb r2, [r3, #0x7]\n"
+ " add r2, r2, r4\n"
+ " add r1, r1, r2\n"
+ " lsl r1, r1, #0x1\n"
+ " add r1, r1, r8\n"
+ " strh r0, [r1]\n"
+ " mov r1, #0xe\n"
+ " mov r2, #0xa\n"
+ " mov r3, #0x4\n"
+ " bl debug_80C68CC\n"
+ " ldr r1, ._764 + 16\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._764 + 20\n"
+ " str r1, [r0]\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._765:\n"
+ " .align 2, 0\n"
+ "._764:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word gPlttBufferUnfaded\n"
+ " .word gPlttBufferFaded\n"
+ " .word 0x101\n"
+ " .word gTasks\n"
+ " .word debug_80C7294+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C7584()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add r2, r0, #0\n"
+ " ldr r0, ._771\n"
+ " ldr r3, [r0]\n"
+ " ldrb r1, [r3, #0x5]\n"
+ " add r4, r0, #0\n"
+ " cmp r1, #0\n"
+ " beq ._766 @cond_branch\n"
+ " mov r1, #0x2e\n"
+ " ldsh r0, [r2, r1]\n"
+ " cmp r0, #0x1\n"
+ " beq ._767 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " ble ._768 @cond_branch\n"
+ " cmp r0, #0x2\n"
+ " beq ._769 @cond_branch\n"
+ "._768:\n"
+ " ldrb r0, [r3, #0xc]\n"
+ " lsl r0, r0, #0x1b\n"
+ " b ._773\n"
+ "._772:\n"
+ " .align 2, 0\n"
+ "._771:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ "._767:\n"
+ " ldrh r0, [r3, #0xc]\n"
+ " lsl r0, r0, #0x16\n"
+ " b ._773\n"
+ "._769:\n"
+ " ldrb r0, [r3, #0xd]\n"
+ " lsl r0, r0, #0x19\n"
+ "._773:\n"
+ " lsr r0, r0, #0x1b\n"
+ " lsl r0, r0, #0x2\n"
+ " strh r0, [r2, #0x24]\n"
+ " mov r1, #0x2e\n"
+ " ldsh r0, [r2, r1]\n"
+ " lsl r0, r0, #0x3\n"
+ " strh r0, [r2, #0x26]\n"
+ " ldrh r0, [r2, #0x30]\n"
+ " add r3, r0, #1\n"
+ " strh r3, [r2, #0x30]\n"
+ " mov r0, #0x2e\n"
+ " ldsh r1, [r2, r0]\n"
+ " ldr r0, [r4]\n"
+ " ldrb r0, [r0, #0xa]\n"
+ " cmp r1, r0\n"
+ " bne ._775 @cond_branch\n"
+ " mov r0, #0x8\n"
+ " and r3, r3, r0\n"
+ " cmp r3, #0\n"
+ " bne ._775 @cond_branch\n"
+ "._766:\n"
+ " add r0, r2, #0\n"
+ " add r0, r0, #0x3e\n"
+ " ldrb r1, [r0]\n"
+ " mov r2, #0x4\n"
+ " orr r1, r1, r2\n"
+ " strb r1, [r0]\n"
+ " b ._776\n"
+ "._775:\n"
+ " add r2, r2, #0x3e\n"
+ " ldrb r1, [r2]\n"
+ " mov r0, #0x5\n"
+ " neg r0, r0\n"
+ " and r0, r0, r1\n"
+ " strb r0, [r2]\n"
+ "._776:\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void InitSeeTrainers()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " bl debug_80C35DC\n"
+ " ldr r1, ._777\n"
+ " ldr r2, ._777 + 4\n"
+ " ldr r0, ._777 + 8\n"
+ " str r1, [r0]\n"
+ " str r2, [r0, #0x4]\n"
+ " ldr r1, ._777 + 12\n"
+ " str r1, [r0, #0x8]\n"
+ " ldr r0, [r0, #0x8]\n"
+ " ldr r0, ._777 + 16\n"
+ " mov r1, #0x80\n"
+ " mov r2, #0x60\n"
+ " bl LoadPalette\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " mov r5, #0x0\n"
+ " str r5, [sp]\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x10\n"
+ " mov r3, #0x0\n"
+ " bl BeginNormalPaletteFade\n"
+ " ldr r0, ._777 + 20\n"
+ " mov r6, #0x0\n"
+ " strh r5, [r0]\n"
+ " add r0, r0, #0x4\n"
+ " strh r5, [r0]\n"
+ " sub r0, r0, #0x2\n"
+ " strh r5, [r0]\n"
+ " add r0, r0, #0x4\n"
+ " strh r5, [r0]\n"
+ " ldr r1, ._777 + 24\n"
+ " mov r0, #0x3f\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " mov r0, #0x1f\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x6\n"
+ " mov r0, #0xf1\n"
+ " strh r0, [r1]\n"
+ " ldr r0, ._777 + 28\n"
+ " strh r5, [r0]\n"
+ " add r1, r1, #0x4\n"
+ " mov r0, #0x7\n"
+ " strh r0, [r1]\n"
+ " ldr r3, ._777 + 32\n"
+ " ldrh r2, [r3]\n"
+ " strh r5, [r3]\n"
+ " ldr r4, ._777 + 36\n"
+ " ldrh r0, [r4]\n"
+ " mov r1, #0x1\n"
+ " orr r0, r0, r1\n"
+ " strh r0, [r4]\n"
+ " strh r2, [r3]\n"
+ " ldr r0, ._777 + 40\n"
+ " bl SetVBlankCallback\n"
+ " ldr r0, ._777 + 44\n"
+ " bl SetMainCallback2\n"
+ " ldr r1, ._777 + 48\n"
+ " ldr r2, ._777 + 52\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " ldr r2, ._777 + 56\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " sub r1, r1, #0xa\n"
+ " mov r2, #0xcd\n"
+ " lsl r2, r2, #0x6\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " ldr r0, ._777 + 60\n"
+ " mov r1, #0x0\n"
+ " bl CreateTask\n"
+ " ldr r1, ._777 + 64\n"
+ " ldr r0, ._777 + 68\n"
+ " str r0, [r1]\n"
+ " strh r5, [r0]\n"
+ " strb r6, [r0, #0x2]\n"
+ " strb r6, [r0, #0x3]\n"
+ " strb r6, [r0, #0x5]\n"
+ " strb r6, [r0, #0x7]\n"
+ " strb r6, [r0, #0xa]\n"
+ " strb r6, [r0, #0x8]\n"
+ " ldr r4, ._777 + 72\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x6c\n"
+ " mov r2, #0x74\n"
+ " mov r3, #0x0\n"
+ " bl CreateSprite\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " ldr r6, ._777 + 76\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r6\n"
+ " strh r5, [r0, #0x2e]\n"
+ " mov r1, #0x0\n"
+ " bl StartSpriteAnim\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x6c\n"
+ " mov r2, #0x74\n"
+ " mov r3, #0x0\n"
+ " bl CreateSprite\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r6\n"
+ " mov r1, #0x1\n"
+ " strh r1, [r0, #0x2e]\n"
+ " bl StartSpriteAnim\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x6c\n"
+ " mov r2, #0x74\n"
+ " mov r3, #0x0\n"
+ " bl CreateSprite\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r6\n"
+ " mov r1, #0x2\n"
+ " strh r1, [r0, #0x2e]\n"
+ " bl StartSpriteAnim\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._778:\n"
+ " .align 2, 0\n"
+ "._777:\n"
+ " .word byte_83F88EC\n"
+ " .word 0x600e000\n"
+ " .word 0x40000d4\n"
+ " .word 0x80000400\n"
+ " .word word_83F888C\n"
+ " .word 0x4000040\n"
+ " .word 0x4000048\n"
+ " .word 0x4000052\n"
+ " .word 0x4000208\n"
+ " .word 0x4000200\n"
+ " .word debug_80C3758+1\n"
+ " .word debug_80C370C+1\n"
+ " .word 0x4000008\n"
+ " .word 0x1f0b\n"
+ " .word 0x1e0a\n"
+ " .word debug_80C777C+1\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word +0x2018000\n"
+ " .word unk_83F8868+0xc\n"
+ " .word gSprites\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C777C()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " add sp, sp, #0xffffffec\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ " ldr r1, ._784\n"
+ " mov r0, sp\n"
+ " mov r2, #0x12\n"
+ " bl memcpy\n"
+ " mov r0, #0x9\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xe\n"
+ " mov r3, #0x7\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x9\n"
+ " mov r3, #0x9\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0x9\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r0, #0xe\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x7\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r0, ._784 + 4\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._784 + 8\n"
+ " mov r1, #0x19\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._784 + 12\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " mov r0, #0xa\n"
+ " mov r1, #0x8\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0xc\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r2, #0x0\n"
+ " ldr r4, ._784 + 16\n"
+ " ldr r0, ._784 + 20\n"
+ " add r3, r0, #0\n"
+ "._779:\n"
+ " lsl r0, r2, #0x1\n"
+ " add r0, r0, r4\n"
+ " add r1, r2, r3\n"
+ " strh r1, [r0]\n"
+ " add r0, r2, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " cmp r2, #0xe\n"
+ " bls ._779 @cond_branch\n"
+ " mov r2, #0x0\n"
+ " ldr r5, ._784 + 24\n"
+ " lsl r6, r7, #0x2\n"
+ " mov r8, r6\n"
+ " ldr r4, ._784 + 28\n"
+ " ldr r0, ._784 + 32\n"
+ " add r3, r0, #0\n"
+ "._780:\n"
+ " lsl r0, r2, #0x1\n"
+ " add r0, r0, r4\n"
+ " add r1, r2, r3\n"
+ " strh r1, [r0]\n"
+ " add r0, r2, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " cmp r2, #0xe\n"
+ " bls ._780 @cond_branch\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0xa\n"
+ " bl MenuPrint\n"
+ " mov r0, #0xa\n"
+ " mov r1, #0xd\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r1, sp\n"
+ " mov r0, #0x23\n"
+ " strb r0, [r1]\n"
+ " mov r2, #0x0\n"
+ " ldr r4, ._784 + 36\n"
+ " mov r5, #0x93\n"
+ " lsl r5, r5, #0x8\n"
+ " add r3, r5, #0\n"
+ "._781:\n"
+ " lsl r1, r2, #0x1\n"
+ " add r1, r1, r4\n"
+ " mov r6, sp\n"
+ " add r0, r6, r2\n"
+ " ldrb r0, [r0]\n"
+ " add r0, r0, r3\n"
+ " strh r0, [r1]\n"
+ " add r0, r2, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " cmp r2, #0x11\n"
+ " bls ._781 @cond_branch\n"
+ " mov r1, sp\n"
+ " mov r0, #0x24\n"
+ " strb r0, [r1]\n"
+ " mov r2, #0x0\n"
+ " ldr r5, ._784 + 40\n"
+ " ldr r4, ._784 + 44\n"
+ " mov r0, #0x93\n"
+ " lsl r0, r0, #0x8\n"
+ " add r3, r0, #0\n"
+ "._782:\n"
+ " lsl r1, r2, #0x1\n"
+ " add r1, r1, r4\n"
+ " mov r6, sp\n"
+ " add r0, r6, r2\n"
+ " ldrb r0, [r0]\n"
+ " add r0, r0, r3\n"
+ " strh r0, [r1]\n"
+ " add r0, r2, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " cmp r2, #0x11\n"
+ " bls ._782 @cond_branch\n"
+ " mov r1, sp\n"
+ " mov r0, #0x25\n"
+ " strb r0, [r1]\n"
+ " mov r2, #0x0\n"
+ " ldr r4, ._784 + 48\n"
+ " mov r0, #0x93\n"
+ " lsl r0, r0, #0x8\n"
+ " add r3, r0, #0\n"
+ "._783:\n"
+ " lsl r1, r2, #0x1\n"
+ " add r1, r1, r4\n"
+ " mov r6, sp\n"
+ " add r0, r6, r2\n"
+ " ldrb r0, [r0]\n"
+ " add r0, r0, r3\n"
+ " strh r0, [r1]\n"
+ " add r0, r2, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " cmp r2, #0x11\n"
+ " bls ._783 @cond_branch\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x11\n"
+ " bl MenuPrint\n"
+ " ldr r1, ._784 + 52\n"
+ " ldr r2, ._784 + 56\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " ldr r5, ._784 + 60\n"
+ " add r0, r5, #0\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._784 + 64\n"
+ " mov r6, r8\n"
+ " add r0, r6, r7\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._784 + 68\n"
+ " str r1, [r0]\n"
+ " add sp, sp, #0x14\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._785:\n"
+ " .align 2, 0\n"
+ "._784:\n"
+ " .word gUnknown_Debug_083F8815\n"
+ " .word gUnknown_Debug_083F87D0\n"
+ " .word gUnknown_Debug_083F87D8\n"
+ " .word gUnknown_Debug_083F87E0\n"
+ " .word 0x600fa56\n"
+ " .word 0xa311\n"
+ " .word gUnknown_Debug_083F87F4\n"
+ " .word 0x600f256\n"
+ " .word 0x8301\n"
+ " .word 0x600f396\n"
+ " .word gUnknown_Debug_083F8801\n"
+ " .word 0x600f3d6\n"
+ " .word 0x600f416\n"
+ " .word 0x4000040\n"
+ " .word 0x51ef\n"
+ " .word 0x699f\n"
+ " .word gTasks\n"
+ " .word debug_80C7934+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C7934()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " mov r6, r8\n"
+ " push {r6}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " mov r8, r0\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r8, r0\n"
+ " ldr r5, ._786\n"
+ " ldr r6, [r5]\n"
+ " ldrh r2, [r6]\n"
+ " lsl r0, r2, #0x3\n"
+ " ldr r1, ._786 + 4\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._786 + 8\n"
+ " lsl r2, r2, #0x2\n"
+ " add r2, r2, r1\n"
+ " ldrb r1, [r2]\n"
+ " ldrb r2, [r2, #0x1]\n"
+ " ldr r4, ._786 + 12\n"
+ " ldr r3, [r4]\n"
+ " ldr r4, [r4, #0x4]\n"
+ " str r4, [sp]\n"
+ " ldrh r4, [r6]\n"
+ " str r4, [sp, #0x4]\n"
+ " bl DecompressPicFromTable_2\n"
+ " ldr r0, [r5]\n"
+ " ldrh r0, [r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " ldr r1, ._786 + 16\n"
+ " add r0, r0, r1\n"
+ " bl LoadCompressedObjectPalette\n"
+ " ldr r0, [r5]\n"
+ " ldrh r0, [r0]\n"
+ " mov r1, #0x1\n"
+ " bl GetMonSpriteTemplate_803C5A0\n"
+ " ldr r0, ._786 + 20\n"
+ " mov r1, #0x28\n"
+ " mov r2, #0x28\n"
+ " mov r3, #0x0\n"
+ " bl CreateSprite\n"
+ " ldr r1, [r5]\n"
+ " mov r6, #0x0\n"
+ " strb r0, [r1, #0x2]\n"
+ " ldr r4, ._786 + 24\n"
+ " ldr r2, [r5]\n"
+ " ldrb r1, [r2, #0x2]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r1, r4, #0\n"
+ " add r1, r1, #0x1c\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._786 + 28\n"
+ " str r1, [r0]\n"
+ " ldrb r0, [r2, #0x2]\n"
+ " lsl r1, r0, #0x4\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x2\n"
+ " add r1, r1, r4\n"
+ " ldrb r2, [r1, #0x5]\n"
+ " mov r0, #0xd\n"
+ " neg r0, r0\n"
+ " and r0, r0, r2\n"
+ " strb r0, [r1, #0x5]\n"
+ " ldr r0, [r5]\n"
+ " ldrh r0, [r0]\n"
+ " mov r1, #0x1a\n"
+ " mov r2, #0x5\n"
+ " bl debug_80C376C\n"
+ " ldr r2, [r5]\n"
+ " ldrb r1, [r2, #0x2]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r4\n"
+ " ldrb r0, [r0, #0x5]\n"
+ " lsr r0, r0, #0x4\n"
+ " strb r0, [r2, #0x6]\n"
+ " ldr r0, [r5]\n"
+ " ldrb r0, [r0, #0x6]\n"
+ " lsl r0, r0, #0x5\n"
+ " ldr r4, ._786 + 32\n"
+ " add r0, r0, r4\n"
+ " ldr r2, ._786 + 36\n"
+ " add r1, r4, r2\n"
+ " mov r2, #0x10\n"
+ " bl CpuSet\n"
+ " ldr r0, [r5]\n"
+ " ldrb r0, [r0, #0x6]\n"
+ " lsl r0, r0, #0x5\n"
+ " add r0, r0, r4\n"
+ " ldr r1, ._786 + 40\n"
+ " mov r2, #0x10\n"
+ " bl CpuSet\n"
+ " ldr r1, ._786 + 44\n"
+ " mov r2, r8\n"
+ " lsl r0, r2, #0x2\n"
+ " add r0, r0, r8\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._786 + 48\n"
+ " str r1, [r0]\n"
+ " ldr r0, [r5]\n"
+ " strb r6, [r0, #0x9]\n"
+ " add sp, sp, #0x8\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._787:\n"
+ " .align 2, 0\n"
+ "._786:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word gTrainerFrontPicTable\n"
+ " .word gTrainerFrontPicCoords\n"
+ " .word gUnknown_081FAF4C\n"
+ " .word gTrainerFrontPicPaletteTable\n"
+ " .word gUnknown_02024E8C\n"
+ " .word gSprites\n"
+ " .word debug_69+1\n"
+ " .word gPlttBufferUnfaded+0x200\n"
+ " .word 0xffffff00\n"
+ " .word gPlttBufferFaded+0x100\n"
+ " .word gTasks\n"
+ " .word debug_80C7A54+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C7A54()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add r6, r0, #0\n"
+ " lsl r6, r6, #0x18\n"
+ " lsr r6, r6, #0x18\n"
+ " ldr r4, ._788\n"
+ " ldr r5, ._788 + 4\n"
+ " ldr r1, [r5]\n"
+ " add r1, r1, #0x10\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x10\n"
+ " bl CpuSet\n"
+ " ldr r0, ._788 + 8\n"
+ " add r4, r4, r0\n"
+ " ldr r3, [r5]\n"
+ " ldrb r0, [r3, #0x7]\n"
+ " add r0, r0, #0x81\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r0, r4\n"
+ " ldrh r4, [r0]\n"
+ " mov r1, #0x1f\n"
+ " and r1, r1, r4\n"
+ " ldrb r2, [r3, #0xc]\n"
+ " mov r0, #0x20\n"
+ " neg r0, r0\n"
+ " and r0, r0, r2\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r3, #0xc]\n"
+ " ldr r3, [r5]\n"
+ " mov r1, #0xf8\n"
+ " lsl r1, r1, #0x2\n"
+ " and r1, r1, r4\n"
+ " ldrh r2, [r3, #0xc]\n"
+ " ldr r0, ._788 + 12\n"
+ " and r0, r0, r2\n"
+ " orr r0, r0, r1\n"
+ " strh r0, [r3, #0xc]\n"
+ " mov r1, #0xf8\n"
+ " lsl r1, r1, #0x7\n"
+ " and r1, r1, r4\n"
+ " lsr r1, r1, #0x8\n"
+ " ldrb r2, [r3, #0xd]\n"
+ " mov r0, #0x7d\n"
+ " neg r0, r0\n"
+ " and r0, r0, r2\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r3, #0xd]\n"
+ " ldr r2, [r5]\n"
+ " ldrb r1, [r2, #0xd]\n"
+ " mov r0, #0x7f\n"
+ " and r0, r0, r1\n"
+ " strb r0, [r2, #0xd]\n"
+ " ldr r0, [r5]\n"
+ " ldrb r0, [r0, #0x7]\n"
+ " add r0, r0, #0x1\n"
+ " mov r1, #0xb\n"
+ " mov r2, #0xa\n"
+ " mov r3, #0x2\n"
+ " bl debug_80C68CC\n"
+ " ldr r0, ._788 + 16\n"
+ " mov r1, #0xd\n"
+ " mov r2, #0xa\n"
+ " bl MenuPrint\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0xe\n"
+ " mov r2, #0xa\n"
+ " mov r3, #0x4\n"
+ " bl debug_80C68CC\n"
+ " ldr r1, ._788 + 20\n"
+ " lsl r0, r6, #0x2\n"
+ " add r0, r0, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._788 + 24\n"
+ " str r1, [r0]\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._789:\n"
+ " .align 2, 0\n"
+ "._788:\n"
+ " .word gPlttBufferUnfaded+0x100\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word 0xffffff00\n"
+ " .word 0xfffffc1f\n"
+ " .word gUnknown_Debug_083F8813\n"
+ " .word gTasks\n"
+ " .word debug_80C7B14+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C7B14()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " ldr r1, ._792\n"
+ " ldrh r3, [r1, #0x2e]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r3\n"
+ " add r4, r1, #0\n"
+ " cmp r0, #0\n"
+ " beq ._790 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " mov r1, #0x0\n"
+ " str r1, [sp]\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x10\n"
+ " bl BeginNormalPaletteFade\n"
+ " ldr r0, ._792 + 4\n"
+ " bl SetMainCallback2\n"
+ " ldr r1, ._792 + 8\n"
+ " lsl r0, r6, #0x2\n"
+ " add r0, r0, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._792 + 12\n"
+ " str r1, [r0]\n"
+ " b ._821\n"
+ "._793:\n"
+ " .align 2, 0\n"
+ "._792:\n"
+ " .word gMain\n"
+ " .word debug_80C370C+1\n"
+ " .word gTasks\n"
+ " .word debug_80C373C+1\n"
+ "._790:\n"
+ " ldrh r1, [r4, #0x30]\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._794 @cond_branch\n"
+ " ldr r4, ._796\n"
+ " ldr r0, [r4]\n"
+ " ldrh r1, [r0]\n"
+ " mov r0, #0x0\n"
+ " b ._795\n"
+ "._797:\n"
+ " .align 2, 0\n"
+ "._796:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ "._794:\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._798 @cond_branch\n"
+ " ldr r4, ._800\n"
+ " ldr r0, [r4]\n"
+ " ldrh r1, [r0]\n"
+ " mov r0, #0x1\n"
+ "._795:\n"
+ " bl debug_80C38B4\n"
+ " ldr r1, [r4]\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._800 + 4\n"
+ " lsl r0, r6, #0x2\n"
+ " add r0, r0, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._800 + 8\n"
+ " str r1, [r0]\n"
+ " b ._821\n"
+ "._801:\n"
+ " .align 2, 0\n"
+ "._800:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word gTasks\n"
+ " .word debug_80C7D44+1\n"
+ "._798:\n"
+ " mov r2, #0x1\n"
+ " and r2, r2, r3\n"
+ " cmp r2, #0\n"
+ " beq ._802 @cond_branch\n"
+ " ldr r0, ._804\n"
+ " ldr r1, [r0]\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1, #0x5]\n"
+ " ldr r1, ._804 + 4\n"
+ " ldr r2, ._804 + 8\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " ldr r2, ._804 + 12\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._804 + 16\n"
+ " lsl r0, r6, #0x2\n"
+ " add r0, r0, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._804 + 20\n"
+ " str r1, [r0]\n"
+ " b ._821\n"
+ "._805:\n"
+ " .align 2, 0\n"
+ "._804:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word 0x4000040\n"
+ " .word 0x51ef\n"
+ " .word 0x4167\n"
+ " .word gTasks\n"
+ " .word debug_80C7DDC+1\n"
+ "._802:\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " ldr r3, ._809\n"
+ " cmp r0, #0\n"
+ " beq ._807 @cond_branch\n"
+ " ldr r1, [r3]\n"
+ " ldrb r0, [r1, #0x7]\n"
+ " cmp r0, #0xd\n"
+ " bhi ._807 @cond_branch\n"
+ " lsl r0, r0, #0x1\n"
+ " ldr r1, ._809 + 4\n"
+ " add r0, r0, r1\n"
+ " strh r2, [r0]\n"
+ " ldr r1, [r3]\n"
+ " ldrb r0, [r1, #0x7]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1, #0x7]\n"
+ " b ._813\n"
+ "._810:\n"
+ " .align 2, 0\n"
+ "._809:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word 0x5000102\n"
+ "._807:\n"
+ " ldrh r1, [r4, #0x30]\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._812 @cond_branch\n"
+ " ldr r1, [r3]\n"
+ " ldrb r0, [r1, #0x7]\n"
+ " cmp r0, #0\n"
+ " beq ._812 @cond_branch\n"
+ " lsl r0, r0, #0x1\n"
+ " ldr r2, ._814\n"
+ " add r0, r0, r2\n"
+ " mov r1, #0x0\n"
+ " strh r1, [r0]\n"
+ " ldr r1, [r3]\n"
+ " ldrb r0, [r1, #0x7]\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r1, #0x7]\n"
+ " b ._813\n"
+ "._815:\n"
+ " .align 2, 0\n"
+ "._814:\n"
+ " .word 0x5000102\n"
+ "._812:\n"
+ " ldrh r1, [r4, #0x2e]\n"
+ " mov r0, #0x8\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._816 @cond_branch\n"
+ " ldr r4, ._819\n"
+ " ldr r2, [r4]\n"
+ " ldrb r0, [r2, #0x9]\n"
+ " mov r1, #0x1\n"
+ " eor r0, r0, r1\n"
+ " strb r0, [r2, #0x9]\n"
+ " ldr r1, [r4]\n"
+ " ldrb r0, [r1, #0x9]\n"
+ " cmp r0, #0\n"
+ " beq ._817 @cond_branch\n"
+ " ldrh r0, [r1]\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x0\n"
+ " bl species_and_otid_get_pal\n"
+ " ldr r1, [r4]\n"
+ " ldrb r1, [r1, #0x6]\n"
+ " lsl r1, r1, #0x14\n"
+ " mov r2, #0x80\n"
+ " lsl r2, r2, #0x11\n"
+ " add r1, r1, r2\n"
+ " lsr r1, r1, #0x10\n"
+ " mov r2, #0x20\n"
+ " bl LoadCompressedPalette\n"
+ " b ._818\n"
+ "._820:\n"
+ " .align 2, 0\n"
+ "._819:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ "._817:\n"
+ " ldrh r0, [r1]\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x9\n"
+ " bl species_and_otid_get_pal\n"
+ " ldr r1, [r4]\n"
+ " ldrb r1, [r1, #0x6]\n"
+ " lsl r1, r1, #0x14\n"
+ " mov r2, #0x80\n"
+ " lsl r2, r2, #0x11\n"
+ " add r1, r1, r2\n"
+ " lsr r1, r1, #0x10\n"
+ " mov r2, #0x20\n"
+ " bl LoadCompressedPalette\n"
+ "._818:\n"
+ " ldr r5, ._822\n"
+ " ldr r0, [r5]\n"
+ " ldrb r0, [r0, #0x6]\n"
+ " lsl r0, r0, #0x5\n"
+ " ldr r4, ._822 + 4\n"
+ " add r0, r0, r4\n"
+ " ldr r2, ._822 + 8\n"
+ " add r1, r4, r2\n"
+ " mov r2, #0x10\n"
+ " bl CpuSet\n"
+ " ldr r0, [r5]\n"
+ " ldrb r0, [r0, #0x6]\n"
+ " lsl r0, r0, #0x5\n"
+ " add r0, r0, r4\n"
+ " ldr r1, ._822 + 12\n"
+ " mov r2, #0x10\n"
+ " bl CpuSet\n"
+ "._813:\n"
+ " ldr r1, ._822 + 16\n"
+ " lsl r0, r6, #0x2\n"
+ " add r0, r0, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._822 + 20\n"
+ " str r1, [r0]\n"
+ " b ._821\n"
+ "._823:\n"
+ " .align 2, 0\n"
+ "._822:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word gPlttBufferUnfaded+0x200\n"
+ " .word 0xffffff00\n"
+ " .word gPlttBufferFaded+0x100\n"
+ " .word gTasks\n"
+ " .word debug_80C7A54+1\n"
+ "._816:\n"
+ " ldr r1, [r3]\n"
+ " ldrb r0, [r1, #0x8]\n"
+ " add r0, r0, #0x4\n"
+ " strb r0, [r1, #0x8]\n"
+ " ldr r2, [r3]\n"
+ " ldrb r1, [r2, #0x8]\n"
+ " mov r0, #0x1f\n"
+ " and r0, r0, r1\n"
+ " strb r0, [r2, #0x8]\n"
+ " ldr r0, [r3]\n"
+ " ldrb r1, [r0, #0x7]\n"
+ " lsl r1, r1, #0x1\n"
+ " ldr r2, ._824\n"
+ " add r1, r1, r2\n"
+ " ldr r2, ._824 + 4\n"
+ " ldrb r0, [r0, #0x8]\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r0, r2\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ "._821:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._825:\n"
+ " .align 2, 0\n"
+ "._824:\n"
+ " .word 0x5000142\n"
+ " .word gUnknown_Debug_083F8790\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C7D44()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add r5, r0, #0\n"
+ " lsl r5, r5, #0x18\n"
+ " lsr r5, r5, #0x18\n"
+ " ldr r6, ._826\n"
+ " ldr r4, ._826 + 4\n"
+ " ldr r0, [r4]\n"
+ " ldrb r1, [r0, #0x2]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r6\n"
+ " ldrb r0, [r0, #0x5]\n"
+ " lsr r0, r0, #0x4\n"
+ " bl GetSpritePaletteTagByPaletteNum\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " bl FreeSpritePaletteByTag\n"
+ " ldr r0, [r4]\n"
+ " ldrb r1, [r0, #0x2]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r6\n"
+ " bl DestroySprite\n"
+ " ldr r0, [r4]\n"
+ " ldrb r1, [r0, #0x3]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r6\n"
+ " ldrb r0, [r0, #0x5]\n"
+ " lsr r0, r0, #0x4\n"
+ " bl GetSpritePaletteTagByPaletteNum\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " bl FreeSpritePaletteByTag\n"
+ " ldr r0, [r4]\n"
+ " ldrb r1, [r0, #0x3]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r6\n"
+ " bl DestroySprite\n"
+ " ldr r0, [r4]\n"
+ " ldrb r1, [r0, #0x4]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r6\n"
+ " bl sub_809D510\n"
+ " ldr r1, ._826 + 8\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._826 + 12\n"
+ " str r1, [r0]\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._827:\n"
+ " .align 2, 0\n"
+ "._826:\n"
+ " .word gSprites\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word gTasks\n"
+ " .word debug_80C7934+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C7DDC()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ " ldr r0, ._830\n"
+ " ldrh r2, [r0, #0x2e]\n"
+ " mov r1, #0x1\n"
+ " and r1, r1, r2\n"
+ " add r3, r0, #0\n"
+ " cmp r1, #0\n"
+ " beq ._828 @cond_branch\n"
+ " ldr r0, ._830 + 4\n"
+ " ldr r1, [r0]\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1, #0x5]\n"
+ " ldr r1, ._830 + 8\n"
+ " ldr r2, ._830 + 12\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " ldr r2, ._830 + 16\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " b ._829\n"
+ "._831:\n"
+ " .align 2, 0\n"
+ "._830:\n"
+ " .word gMain\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word 0x4000040\n"
+ " .word 0x51ef\n"
+ " .word 0x699f\n"
+ "._828:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._832 @cond_branch\n"
+ " ldr r6, ._834\n"
+ " ldr r0, [r6]\n"
+ " strb r1, [r0, #0x5]\n"
+ " ldr r1, ._834 + 4\n"
+ " ldr r2, ._834 + 8\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " ldr r2, ._834 + 12\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " ldr r0, [r6]\n"
+ " add r0, r0, #0x10\n"
+ " ldr r4, ._834 + 16\n"
+ " add r1, r4, #0\n"
+ " mov r2, #0x10\n"
+ " bl CpuSet\n"
+ " ldr r0, [r6]\n"
+ " add r0, r0, #0x10\n"
+ " ldr r5, ._834 + 20\n"
+ " add r1, r5, #0\n"
+ " mov r2, #0x10\n"
+ " bl CpuSet\n"
+ " ldr r1, [r6]\n"
+ " add r0, r1, #0\n"
+ " add r0, r0, #0x10\n"
+ " ldrb r1, [r1, #0x6]\n"
+ " lsl r1, r1, #0x5\n"
+ " mov r2, #0x80\n"
+ " lsl r2, r2, #0x1\n"
+ " add r4, r4, r2\n"
+ " add r1, r1, r4\n"
+ " mov r2, #0x10\n"
+ " bl CpuSet\n"
+ " ldr r1, [r6]\n"
+ " add r0, r1, #0\n"
+ " add r0, r0, #0x10\n"
+ " ldrb r1, [r1, #0x6]\n"
+ " lsl r1, r1, #0x5\n"
+ " mov r2, #0x80\n"
+ " lsl r2, r2, #0x1\n"
+ " add r5, r5, r2\n"
+ " add r1, r1, r5\n"
+ " mov r2, #0x10\n"
+ " bl CpuSet\n"
+ "._829:\n"
+ " ldr r1, ._834 + 24\n"
+ " lsl r0, r7, #0x2\n"
+ " add r0, r0, r7\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._834 + 28\n"
+ " str r1, [r0]\n"
+ " b ._871\n"
+ "._835:\n"
+ " .align 2, 0\n"
+ "._834:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word 0x4000040\n"
+ " .word 0x51ef\n"
+ " .word 0x699f\n"
+ " .word gPlttBufferUnfaded+0x100\n"
+ " .word gPlttBufferFaded+0x100\n"
+ " .word gTasks\n"
+ " .word debug_80C7A54+1\n"
+ "._832:\n"
+ " ldrh r1, [r3, #0x30]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._837 @cond_branch\n"
+ " ldr r0, ._839\n"
+ " ldr r1, [r0]\n"
+ " ldrb r0, [r1, #0xa]\n"
+ " cmp r0, #0x1\n"
+ " bhi ._837 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1, #0xa]\n"
+ " b ._871\n"
+ "._840:\n"
+ " .align 2, 0\n"
+ "._839:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ "._837:\n"
+ " ldrh r1, [r3, #0x30]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._842 @cond_branch\n"
+ " ldr r0, ._844\n"
+ " ldr r1, [r0]\n"
+ " ldrb r0, [r1, #0xa]\n"
+ " cmp r0, #0\n"
+ " beq ._842 @cond_branch\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r1, #0xa]\n"
+ " b ._871\n"
+ "._845:\n"
+ " .align 2, 0\n"
+ "._844:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ "._842:\n"
+ " ldrh r1, [r3, #0x30]\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._846 @cond_branch\n"
+ " ldr r0, ._851\n"
+ " ldr r2, [r0]\n"
+ " ldrb r0, [r2, #0xa]\n"
+ " cmp r0, #0x1\n"
+ " beq ._847 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bgt ._848 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._849 @cond_branch\n"
+ " b ._871\n"
+ "._852:\n"
+ " .align 2, 0\n"
+ "._851:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ "._848:\n"
+ " cmp r0, #0x2\n"
+ " beq ._853 @cond_branch\n"
+ " b ._871\n"
+ "._849:\n"
+ " ldrb r3, [r2, #0xc]\n"
+ " lsl r1, r3, #0x1b\n"
+ " lsr r0, r1, #0x1b\n"
+ " cmp r0, #0x1e\n"
+ " bhi ._878 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " mov r1, #0x1f\n"
+ " and r0, r0, r1\n"
+ " mov r1, #0x20\n"
+ " neg r1, r1\n"
+ " and r1, r1, r3\n"
+ " orr r1, r1, r0\n"
+ " strb r1, [r2, #0xc]\n"
+ " b ._878\n"
+ "._847:\n"
+ " ldrh r3, [r2, #0xc]\n"
+ " lsl r1, r3, #0x16\n"
+ " lsr r0, r1, #0x1b\n"
+ " cmp r0, #0x1e\n"
+ " bhi ._878 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " mov r1, #0x1f\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x5\n"
+ " ldr r1, ._859\n"
+ " and r1, r1, r3\n"
+ " orr r1, r1, r0\n"
+ " strh r1, [r2, #0xc]\n"
+ " b ._878\n"
+ "._860:\n"
+ " .align 2, 0\n"
+ "._859:\n"
+ " .word 0xfffffc1f\n"
+ "._853:\n"
+ " ldrb r3, [r2, #0xd]\n"
+ " lsl r1, r3, #0x19\n"
+ " lsr r0, r1, #0x1b\n"
+ " cmp r0, #0x1e\n"
+ " bhi ._878 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " mov r1, #0x1f\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " mov r1, #0x7d\n"
+ " neg r1, r1\n"
+ " and r1, r1, r3\n"
+ " orr r1, r1, r0\n"
+ " strb r1, [r2, #0xd]\n"
+ " b ._878\n"
+ "._846:\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._871 @cond_branch\n"
+ " ldr r0, ._868\n"
+ " ldr r3, [r0]\n"
+ " ldrb r0, [r3, #0xa]\n"
+ " cmp r0, #0x1\n"
+ " beq ._864 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bgt ._865 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._866 @cond_branch\n"
+ " b ._871\n"
+ "._869:\n"
+ " .align 2, 0\n"
+ "._868:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ "._865:\n"
+ " cmp r0, #0x2\n"
+ " beq ._870 @cond_branch\n"
+ " b ._871\n"
+ "._866:\n"
+ " ldrb r2, [r3, #0xc]\n"
+ " mov r0, #0x1f\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._878 @cond_branch\n"
+ " lsl r0, r2, #0x1b\n"
+ " lsr r0, r0, #0x1b\n"
+ " sub r0, r0, #0x1\n"
+ " mov r1, #0x1f\n"
+ " and r0, r0, r1\n"
+ " mov r1, #0x20\n"
+ " neg r1, r1\n"
+ " and r1, r1, r2\n"
+ " orr r1, r1, r0\n"
+ " strb r1, [r3, #0xc]\n"
+ " b ._878\n"
+ "._864:\n"
+ " ldrh r2, [r3, #0xc]\n"
+ " mov r0, #0xf8\n"
+ " lsl r0, r0, #0x2\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._878 @cond_branch\n"
+ " lsl r0, r2, #0x16\n"
+ " lsr r0, r0, #0x1b\n"
+ " sub r0, r0, #0x1\n"
+ " mov r1, #0x1f\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x5\n"
+ " ldr r1, ._876\n"
+ " and r1, r1, r2\n"
+ " orr r1, r1, r0\n"
+ " strh r1, [r3, #0xc]\n"
+ " b ._878\n"
+ "._877:\n"
+ " .align 2, 0\n"
+ "._876:\n"
+ " .word 0xfffffc1f\n"
+ "._870:\n"
+ " ldrb r2, [r3, #0xd]\n"
+ " mov r0, #0x7c\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._878 @cond_branch\n"
+ " lsl r0, r2, #0x19\n"
+ " lsr r0, r0, #0x1b\n"
+ " sub r0, r0, #0x1\n"
+ " mov r1, #0x1f\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " mov r1, #0x7d\n"
+ " neg r1, r1\n"
+ " and r1, r1, r2\n"
+ " orr r1, r1, r0\n"
+ " strb r1, [r3, #0xd]\n"
+ "._878:\n"
+ " ldr r0, ._879\n"
+ " lsl r1, r7, #0x2\n"
+ " add r1, r1, r7\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._879 + 4\n"
+ " str r0, [r1]\n"
+ "._871:\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._880:\n"
+ " .align 2, 0\n"
+ "._879:\n"
+ " .word gTasks\n"
+ " .word debug_80C802C+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_80C802C()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " mov r6, r8\n"
+ " push {r6}\n"
+ " add r5, r0, #0\n"
+ " lsl r5, r5, #0x18\n"
+ " lsr r5, r5, #0x18\n"
+ " ldr r0, ._881\n"
+ " ldr r3, [r0]\n"
+ " ldrb r0, [r3, #0xc]\n"
+ " lsl r0, r0, #0x1b\n"
+ " lsr r0, r0, #0x1b\n"
+ " ldrh r2, [r3, #0xc]\n"
+ " mov r1, #0xf8\n"
+ " lsl r1, r1, #0x2\n"
+ " and r1, r1, r2\n"
+ " add r0, r0, r1\n"
+ " ldrb r1, [r3, #0xd]\n"
+ " lsl r1, r1, #0x19\n"
+ " lsr r1, r1, #0x1b\n"
+ " lsl r1, r1, #0xa\n"
+ " add r0, r0, r1\n"
+ " ldr r6, ._881 + 4\n"
+ " ldrb r1, [r3, #0x7]\n"
+ " add r1, r1, #0x81\n"
+ " lsl r1, r1, #0x1\n"
+ " add r1, r1, r6\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._881 + 8\n"
+ " mov r8, r1\n"
+ " ldrb r1, [r3, #0x7]\n"
+ " add r1, r1, #0x81\n"
+ " lsl r1, r1, #0x1\n"
+ " add r1, r1, r8\n"
+ " strh r0, [r1]\n"
+ " ldrb r1, [r3, #0x6]\n"
+ " lsl r1, r1, #0x4\n"
+ " ldrb r2, [r3, #0x7]\n"
+ " ldr r4, ._881 + 12\n"
+ " add r2, r2, r4\n"
+ " add r1, r1, r2\n"
+ " lsl r1, r1, #0x1\n"
+ " add r1, r1, r6\n"
+ " strh r0, [r1]\n"
+ " ldrb r1, [r3, #0x6]\n"
+ " lsl r1, r1, #0x4\n"
+ " ldrb r2, [r3, #0x7]\n"
+ " add r2, r2, r4\n"
+ " add r1, r1, r2\n"
+ " lsl r1, r1, #0x1\n"
+ " add r1, r1, r8\n"
+ " strh r0, [r1]\n"
+ " mov r1, #0xe\n"
+ " mov r2, #0xa\n"
+ " mov r3, #0x4\n"
+ " bl debug_80C68CC\n"
+ " ldr r1, ._881 + 16\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._881 + 20\n"
+ " str r1, [r0]\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._882:\n"
+ " .align 2, 0\n"
+ "._881:\n"
+ " .word unk_debug_ewram_0+0x34\n"
+ " .word gPlttBufferUnfaded\n"
+ " .word gPlttBufferFaded\n"
+ " .word 0x101\n"
+ " .word gTasks\n"
+ " .word debug_80C7DDC+1\n"
+ "\n"
+ );
+}
+
+#endif