summaryrefslogtreecommitdiff
path: root/src/debug/nakamura_debug_menu.c
diff options
context:
space:
mode:
authorCameron Hall <cameronghall@cox.net>2018-01-16 22:25:35 -0600
committerCameron Hall <cameronghall@cox.net>2018-01-16 22:25:35 -0600
commit91cfb6a564f73f02eb57792f8a0f4aa82e1867d1 (patch)
tree16c7a1de365dabdd85dcc3621ea366fb79a5282c /src/debug/nakamura_debug_menu.c
parent6b5a7d8611103ab2ee0210dc6d87bd42f4e3317f (diff)
add debug ifdefs
Diffstat (limited to 'src/debug/nakamura_debug_menu.c')
-rw-r--r--src/debug/nakamura_debug_menu.c5031
1 files changed, 5031 insertions, 0 deletions
diff --git a/src/debug/nakamura_debug_menu.c b/src/debug/nakamura_debug_menu.c
new file mode 100644
index 000000000..48b6d91b8
--- /dev/null
+++ b/src/debug/nakamura_debug_menu.c
@@ -0,0 +1,5031 @@
+#ifdef DEBUG
+#include "global.h"
+#include "menu.h"
+
+EWRAM_DATA u8 _nakamuraData[0x10] = {0};
+
+static u8 _nakamuraStatic[32] __attribute__((unused));
+
+u8 debug_sub_815FC54();
+u8 debug_sub_815F2B4();
+u8 debug_sub_815FC94();
+u8 debug_sub_815FB1C();
+u8 debug_sub_815F2F4();
+u8 debug_sub_815F62C();
+u8 debug_sub_815FBE8();
+u8 debug_sub_815FE1C();
+u8 debug_sub_8160D98();
+
+const u8 Str_843E36C[] = _("Berries");
+const u8 Str_843E374[] = _("Goods");
+const u8 Str_843E37A[] = _("{PKMN} list");
+const u8 Str_843E382[] = _("トラップ");
+const u8 Str_843E387[] = _("Move your base");
+const u8 Str_843E396[] = _("Moving {PKMN}");
+const u8 Str_843E3A0[] = _("Fishing points");
+const u8 Str_843E3AF[] = _("Set {POKEBLOCK}");
+const u8 Str_843E3B9[] = _("Make bases(to max)");
+const u8 Str_843E3CC[] = _("Base location");
+
+const struct MenuAction _843E3DC[] = {
+ { Str_843E36C, debug_sub_815FC54 },
+ { Str_843E37A, debug_sub_815F2B4 },
+ { Str_843E374, debug_sub_815FC94 },
+ { Str_843E387, debug_sub_815FB1C },
+ { Str_843E3B9, debug_sub_815F2F4 },
+ { Str_843E3CC, debug_sub_815F62C },
+ { Str_843E396, debug_sub_815FBE8 },
+ { Str_843E3A0, debug_sub_815FE1C },
+ { Str_843E3AF, debug_sub_8160D98 },
+};
+
+const u8 _843E424[][4] = {
+ { 1, 118, 47, 14 },
+ { 2, 125, 53, 10 },
+ { 3, 113, 49, 8 },
+ { 0xB, 118, 67, 6 },
+ { 0xC, 121, 40, 11 },
+ { 0xD, 111, 35, 1 },
+ { 0x15, 115, 20, 53 },
+ { 0x16, 121, 18, 13 },
+ { 0x17, 119, 26, 81 },
+ { 0x1F, 127, 59, 67 },
+ { 0x20, 125, 55, 11 },
+ { 0x21, 111, 27, 27 },
+ { 0x29, 114, 9, 47 },
+ { 0x2A, 115, 32, 39 },
+ { 0x2B, 115, 23, 8 },
+ { 0x33, 114, 30, 51 },
+ { 0x34, 115, 26, 15 },
+ { 0x35, 115, 32, 46 },
+ { 0x3D, 114, 11, 62 },
+ { 0x3E, 115, 21, 18 },
+ { 0x3F, 115, 25, 24 },
+ { 0x47, 114, 19, 70 },
+ { 0x48, 115, 32, 6 },
+ { 0x49, 114, 32, 57 },
+ { 0x51, 116, 71, 4 },
+ { 0x52, 123, 47, 3 },
+ { 0x53, 123, 57, 5 },
+ { 0x5B, 116, 79, 11 },
+ { 0x5C, 123, 49, 3 },
+ { 0x5D, 120, 18, 12 },
+ { 0x65, 120, 28, 62 },
+ { 0x66, 116, 56, 6 },
+ { 0x67, 119, 16, 81 },
+ { 0x6F, 120, 30, 62 },
+ { 0x70, 116, 55, 15 },
+ { 0x71, 119, 16, 28 },
+ { 0x79, 111, 33, 34 },
+ { 0x7A, 118, 29, 5 },
+ { 0x7B, 127, 45, 24 },
+ { 0x83, 111, 24, 36 },
+ { 0x84, 125, 7, 25 },
+ { 0x85, 115, 8, 30 },
+ { 0x8D, 111, 34, 50 },
+ { 0x8E, 127, 59, 72 },
+ { 0x8F, 127, 61, 21 },
+ { 0x97, 127, 67, 63 },
+ { 0x98, 125, 24, 32 },
+ { 0x99, 111, 35, 31 },
+ { 0xA1, 111, 13, 19 },
+ { 0xA2, 121, 43, 7 },
+ { 0xA3, 118, 47, 5 },
+ { 0xA4, 111, 14, 19 },
+ { 0xAB, 118, 46, 5 },
+ { 0xAC, 121, 42, 7 },
+ { 0xAD, 119, 19, 76 },
+ { 0xAE, 115, 7, 20 },
+ { 0xB5, 110, 16, 25 },
+ { 0xB6, 114, 11, 27 },
+ { 0xB7, 115, 8, 20 },
+ { 0xBF, 110, 17, 25 },
+ { 0xC0, 114, 12, 27 },
+ { 0xC1, 119, 18, 76 },
+ { 0xC9, 119, 5, 2 },
+ { 0xCA, 119, 4, 89 },
+ { 0xCB, 120, 38, 54 },
+ { 0xCC, 120, 5, 76 },
+ { 0xD3, 119, 5, 15 },
+ { 0xD4, 119, 7, 101 },
+ { 0xD5, 120, 31, 23 },
+ { 0xDD, 119, 34, 24 },
+ { 0xDE, 120, 26, 10 },
+ { 0xDF, 119, 4, 15 },
+ { 0xE7, 119, 31, 73 },
+ { 0xE8, 120, 29, 85 },
+ { 0xE9, 119, 6, 2 },
+};
+
+const u8 Str_843E550[] = _("R");
+const u8 Str_843E552[] = _("X");
+const u8 Str_843E554[] = _("Y");
+const u8 Str_843E556[] = _(
+ "♂1\n"
+ "♂2\n"
+ "♂3\n"
+ "♂4\n"
+ "♂5\n"
+ "♀1\n"
+ "♀2\n"
+ "♀3\n"
+ "♀4\n"
+ "♀5");
+const u8 Str_843E574[] = _("ー");
+const u8 Str_843E576[] = _("あ");
+const u8 Str_843E578[] = _("ア");
+const u8 Str_843E57A[] = _("A");
+const u8 Str_843E57C[] = _("a");
+const u8 Str_843E57E[] = _("0");
+const u8 Str_843E580[] = _(
+ "ADD\n"
+ "DEL\n"
+ "EXIT");
+const u8 Str_843E58D[] = _(
+ "Fishing location R119\n"
+ " Y1\n"
+ " Y2\n"
+ " Y3\n"
+ "Encounter location\n"
+ "\n"
+ "\n"
+ "front of you");
+const u8 _843E5D1[] = {0x0F, 0x16, 0x19};
+const u8 Str_843E5D4[] = _(
+ "Aボタン {ESCAPE}\p"
+ "  Bボタン ー\n"
+ "START けってい");
+const u8 Str_843E5F0[] = _("?");
+const u8 Str_843E5F2[] = _("HP どりょくち");
+const u8 Str_843E5FB[] = _("こうげき どりょくち");
+const u8 Str_843E606[] = _("ぼうぎょ どりょくち");
+const u8 Str_843E611[] = _("すばやさ どりょくち");
+const u8 Str_843E61C[] = _("とくこう どりょくち");
+const u8 Str_843E627[] = _("とくぼう どりょくち");
+const u8 Str_843E632[] = _("なつきど");
+const u8 Str_843E637[] = _("どりょくち ごうけい");
+const u8 Str_843E642[] = _("ここから");
+const u8 Str_843E647[] = _("ここまで");
+const u8 Str_843E64C[] = _("かいすう");
+const u8 Str_843E651[] = _("けっか");
+const u8 Str_843E655[] = _("かい");
+const u8 Str_843E658[] = _("0");
+const u8 Str_843E65A[] = _("はんい");
+
+__attribute__((naked))
+void debug_sub_815F1B8()
+{
+ asm(
+ " push {lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " bl MenuZeroFillScreen\n"
+ " mov r0, #0xe\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r3, ._1\n"
+ " mov r0, #0x10\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x9\n"
+ " bl PrintMenuItems\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " mov r0, #0xe\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x9\n"
+ " bl InitMenu\n"
+ " add sp, sp, #0x8\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._2:\n"
+ " .align 2, 0\n"
+ "._1:\n"
+ " .word _843E3DC\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void InitNakamuraDebugMenu()
+{
+ asm(
+ " push {lr}\n"
+ " bl debug_sub_815F1B8\n"
+ " ldr r1, ._3\n"
+ " ldr r0, ._3 + 4\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._4:\n"
+ " .align 2, 0\n"
+ "._3:\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_815F214+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_815F214()
+{
+ asm(
+ " push {r4, lr}\n"
+ " ldr r4, ._9\n"
+ " ldrh r1, [r4, #0x2e]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._5 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " bl MoveMenuCursor\n"
+ "._5:\n"
+ " ldrh r1, [r4, #0x2e]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._6 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " bl MoveMenuCursor\n"
+ "._6:\n"
+ " ldrh r1, [r4, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._7 @cond_branch\n"
+ " ldr r4, ._9 + 4\n"
+ " bl GetMenuCursorPos\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x15\n"
+ " add r4, r4, #0x4\n"
+ " add r0, r0, r4\n"
+ " ldr r4, [r0]\n"
+ " bl HandleDestroyMenuCursors\n"
+ " bl _call_via_r4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " b ._12\n"
+ "._10:\n"
+ " .align 2, 0\n"
+ "._9:\n"
+ " .word gMain\n"
+ " .word _843E3DC\n"
+ "._7:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._11 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._12\n"
+ "._11:\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ "._12:\n"
+ " pop {r4}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_815F284()
+{
+ asm(
+ " push {r4, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " ldr r0, ._14\n"
+ " ldrb r1, [r0, #0x7]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._13 @cond_branch\n"
+ " bl debug_sub_81381B4\n"
+ " mov r0, #0x5\n"
+ " mov r1, #0x0\n"
+ " bl OpenPartyMenu\n"
+ " add r0, r4, #0\n"
+ " bl DestroyTask\n"
+ "._13:\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._15:\n"
+ " .align 2, 0\n"
+ "._14:\n"
+ " .word gPaletteFade\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 debug_sub_815F2B4()
+{
+ asm(
+ " push {lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " bl CloseMenu\n"
+ " bl MenuZeroFillScreen\n"
+ " ldr r1, ._16\n"
+ " ldr r0, ._16 + 4\n"
+ " str r0, [r1, #0x8]\n"
+ " ldr r0, ._16 + 8\n"
+ " mov r1, #0x0\n"
+ " bl CreateTask\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"
+ " mov r0, #0x1\n"
+ " add sp, sp, #0x4\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._17:\n"
+ " .align 2, 0\n"
+ "._16:\n"
+ " .word gMain\n"
+ " .word sub_805469C+1\n"
+ " .word debug_sub_815F284+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 debug_sub_815F2F4()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, sl\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5, r6, r7}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " bl CloseMenu\n"
+ " mov r7, #0x1\n"
+ "._34:\n"
+ " lsl r1, r7, #0x2\n"
+ " add r0, r1, r7\n"
+ " lsl r2, r0, #0x5\n"
+ " ldr r3, ._24\n"
+ " add r0, r2, r3\n"
+ " ldr r5, ._24 + 4\n"
+ " add r0, r0, r5\n"
+ " ldrb r0, [r0]\n"
+ " mov r9, r1\n"
+ " add r1, r7, #1\n"
+ " str r1, [sp]\n"
+ " cmp r0, #0\n"
+ " beq ._18 @cond_branch\n"
+ " b ._19\n"
+ "._18:\n"
+ " mov r5, #0x0\n"
+ " ldr r6, ._24 + 8\n"
+ " add r4, r7, #0\n"
+ " sub r4, r4, #0x46\n"
+ " ldr r3, ._24 + 12\n"
+ "._21:\n"
+ " add r1, r5, r2\n"
+ " add r1, r1, r3\n"
+ " add r0, r5, r6\n"
+ " ldrb r0, [r0]\n"
+ " strb r0, [r1]\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0xff\n"
+ " beq ._20 @cond_branch\n"
+ " add r0, r5, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " cmp r5, #0x6\n"
+ " bls ._21 @cond_branch\n"
+ "._20:\n"
+ " cmp r5, #0x7\n"
+ " bne ._22 @cond_branch\n"
+ " add r0, r2, #6\n"
+ " b ._23\n"
+ "._25:\n"
+ " .align 2, 0\n"
+ "._24:\n"
+ " .word gSaveBlock1\n"
+ " .word 0x1a08\n"
+ " .word gSaveBlock2\n"
+ " .word gSaveBlock1+0x1a0a\n"
+ "._22:\n"
+ " add r0, r5, r2\n"
+ "._23:\n"
+ " add r0, r0, r3\n"
+ " strb r4, [r0]\n"
+ " ldr r1, ._35\n"
+ " ldr r2, ._35 + 4\n"
+ " add r2, r2, r1\n"
+ " mov sl, r2\n"
+ " mov r3, r9\n"
+ " add r0, r3, r7\n"
+ " lsl r6, r0, #0x5\n"
+ " add r1, r6, r1\n"
+ " ldr r5, ._35 + 4\n"
+ " add r5, r5, r1\n"
+ " mov r8, r5\n"
+ "._30:\n"
+ " bl Random\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " mov r1, #0x4b\n"
+ " bl __umodsi3\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0xe\n"
+ " ldr r1, ._35 + 8\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0]\n"
+ " mov r2, r8\n"
+ " strb r0, [r2]\n"
+ " mov r5, #0x0\n"
+ " cmp r5, r7\n"
+ " bcs ._28 @cond_branch\n"
+ " mov r3, sl\n"
+ " ldrb r3, [r3]\n"
+ " cmp r0, r3\n"
+ " beq ._28 @cond_branch\n"
+ " ldr r4, ._35\n"
+ " add r0, r6, r4\n"
+ " ldr r2, ._35 + 4\n"
+ " add r3, r0, r2\n"
+ "._29:\n"
+ " add r0, r5, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " cmp r5, r7\n"
+ " bcs ._28 @cond_branch\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x5\n"
+ " add r0, r0, r4\n"
+ " add r0, r0, r2\n"
+ " ldrb r1, [r3]\n"
+ " ldrb r0, [r0]\n"
+ " cmp r1, r0\n"
+ " bne ._29 @cond_branch\n"
+ "._28:\n"
+ " cmp r5, r7\n"
+ " bne ._30 @cond_branch\n"
+ " bl Random\n"
+ " mov r5, r9\n"
+ " add r4, r5, r7\n"
+ " lsl r4, r4, #0x5\n"
+ " ldr r1, ._35\n"
+ " add r3, r4, r1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " mov r1, #0x1\n"
+ " ldr r2, ._35 + 12\n"
+ " add r3, r3, r2\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x4\n"
+ " ldrb r1, [r3]\n"
+ " mov r5, #0x11\n"
+ " neg r5, r5\n"
+ " add r2, r5, #0\n"
+ " and r1, r1, r2\n"
+ " orr r1, r1, r0\n"
+ " strb r1, [r3]\n"
+ " mov r5, #0x0\n"
+ " ldr r6, ._35 + 16\n"
+ "._31:\n"
+ " bl Random\n"
+ " add r1, r5, r4\n"
+ " add r1, r1, r6\n"
+ " strb r0, [r1]\n"
+ " add r0, r5, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " cmp r5, #0x3\n"
+ " bls ._31 @cond_branch\n"
+ " mov r5, #0x0\n"
+ " mov r1, r9\n"
+ " add r0, r1, r7\n"
+ " lsl r4, r0, #0x5\n"
+ " ldr r3, ._35 + 20\n"
+ " mov r2, #0x0\n"
+ " add r6, r3, #0\n"
+ " add r6, r6, #0x10\n"
+ "._32:\n"
+ " add r1, r5, r4\n"
+ " add r0, r1, r3\n"
+ " strb r2, [r0]\n"
+ " add r1, r1, r6\n"
+ " strb r2, [r1]\n"
+ " add r0, r5, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " cmp r5, #0xf\n"
+ " bls ._32 @cond_branch\n"
+ " add r0, r7, #0\n"
+ " bl unref_sub_80BCD7C\n"
+ "._19:\n"
+ " ldr r2, [sp]\n"
+ " lsl r0, r2, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ " cmp r7, #0x13\n"
+ " bhi ._33 @cond_branch\n"
+ " b ._34\n"
+ "._33:\n"
+ " mov r0, #0x1\n"
+ " add sp, sp, #0x4\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._36:\n"
+ " .align 2, 0\n"
+ "._35:\n"
+ " .word gSaveBlock1\n"
+ " .word 0x1a08\n"
+ " .word _843E424\n"
+ " .word 0x1a09\n"
+ " .word gSaveBlock1+0x1a11\n"
+ " .word gSaveBlock1+0x1a1a\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_815F470()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " add r6, r0, #0\n"
+ " add r7, r1, #0\n"
+ " mov ip, r2\n"
+ " ldr r2, ._39\n"
+ " ldr r0, ._39 + 4\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x5\n"
+ " add r0, r0, r2\n"
+ " ldr r1, ._39 + 8\n"
+ " add r0, r0, r1\n"
+ " ldrb r4, [r0]\n"
+ " mov r2, #0x0\n"
+ " ldr r3, ._39 + 12\n"
+ " add r5, r3, #0\n"
+ "._41:\n"
+ " lsl r1, r2, #0x2\n"
+ " add r0, r1, r5\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, r4\n"
+ " bne ._37 @cond_branch\n"
+ " add r0, r1, #1\n"
+ " add r0, r0, r3\n"
+ " ldrb r0, [r0]\n"
+ " strb r0, [r6]\n"
+ " add r0, r1, #2\n"
+ " add r0, r0, r3\n"
+ " ldrb r0, [r0]\n"
+ " strb r0, [r7]\n"
+ " add r0, r1, #3\n"
+ " add r0, r0, r3\n"
+ " ldrb r0, [r0]\n"
+ " mov r1, ip\n"
+ " strb r0, [r1]\n"
+ " b ._38\n"
+ "._40:\n"
+ " .align 2, 0\n"
+ "._39:\n"
+ " .word gSaveBlock1\n"
+ " .word _nakamuraData\n"
+ " .word 0x1a08\n"
+ " .word _843E424\n"
+ "._37:\n"
+ " add r0, r2, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " cmp r2, #0x4a\n"
+ " bls ._41 @cond_branch\n"
+ "._38:\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_815F4D8()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xa\n"
+ " mov r3, #0xa\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " ldr r6, ._43\n"
+ " ldr r7, ._43 + 4\n"
+ " ldrb r1, [r7]\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x2\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r2, ._43 + 8\n"
+ " ldrb r1, [r7]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x5\n"
+ " add r0, r0, r2\n"
+ " ldr r1, ._43 + 12\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._42 @cond_branch\n"
+ " mov r4, sp\n"
+ " add r4, r4, #0x1\n"
+ " mov r5, sp\n"
+ " add r5, r5, #0x2\n"
+ " mov r0, sp\n"
+ " add r1, r4, #0\n"
+ " add r2, r5, #0\n"
+ " bl debug_sub_815F470\n"
+ " ldrb r1, [r7]\n"
+ " add r0, r6, #0\n"
+ " bl sub_80BC190\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x3\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._43 + 16\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " mov r0, sp\n"
+ " ldrb r1, [r0]\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._43 + 20\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x7\n"
+ " bl MenuPrint\n"
+ " ldrb r1, [r4]\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x3\n"
+ " mov r2, #0x7\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._43 + 24\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x9\n"
+ " bl MenuPrint\n"
+ " ldrb r1, [r5]\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x3\n"
+ " mov r2, #0x9\n"
+ " bl MenuPrint\n"
+ "._42:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._44:\n"
+ " .align 2, 0\n"
+ "._43:\n"
+ " .word gStringVar1\n"
+ " .word _nakamuraData\n"
+ " .word gSaveBlock1\n"
+ " .word 0x1a08\n"
+ " .word Str_843E550\n"
+ " .word Str_843E552\n"
+ " .word Str_843E554\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_815F5C4()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._48\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r2, r0, #0x10\n"
+ " cmp r2, #0\n"
+ " beq ._45 @cond_branch\n"
+ " ldr r1, ._48 + 4\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " bne ._46 @cond_branch\n"
+ " mov r0, #0x13\n"
+ " b ._50\n"
+ "._49:\n"
+ " .align 2, 0\n"
+ "._48:\n"
+ " .word gMain\n"
+ " .word _nakamuraData\n"
+ "._46:\n"
+ " sub r0, r0, #0x1\n"
+ " b ._50\n"
+ "._45:\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._51 @cond_branch\n"
+ " ldr r1, ._54\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0x13\n"
+ " bne ._52 @cond_branch\n"
+ " strb r2, [r1]\n"
+ " b ._53\n"
+ "._55:\n"
+ " .align 2, 0\n"
+ "._54:\n"
+ " .word _nakamuraData\n"
+ "._52:\n"
+ " add r0, r0, #0x1\n"
+ "._50:\n"
+ " strb r0, [r1]\n"
+ "._53:\n"
+ " bl debug_sub_815F4D8\n"
+ " mov r0, #0x0\n"
+ " b ._58\n"
+ "._51:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._57 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._58\n"
+ "._57:\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ "._58:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 debug_sub_815F62C()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r1, ._59\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ " ldr r1, ._59 + 4\n"
+ " ldr r0, ._59 + 8\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuZeroFillWindowRect\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xb\n"
+ " mov r3, #0xb\n"
+ " bl MenuDrawTextWindow\n"
+ " bl debug_sub_815F4D8\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._60:\n"
+ " .align 2, 0\n"
+ "._59:\n"
+ " .word _nakamuraData\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_815F5C4+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_815F668()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " ldr r0, ._61\n"
+ " ldrb r0, [r0]\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x5\n"
+ " ldr r0, ._61 + 4\n"
+ " add r1, r1, r0\n"
+ " ldrb r4, [r1, #0x3]\n"
+ " lsl r4, r4, #0x18\n"
+ " ldrb r0, [r1, #0x2]\n"
+ " lsl r0, r0, #0x10\n"
+ " orr r4, r4, r0\n"
+ " ldrb r0, [r1, #0x1]\n"
+ " lsl r0, r0, #0x8\n"
+ " orr r4, r4, r0\n"
+ " ldrb r0, [r1]\n"
+ " orr r4, r4, r0\n"
+ " ldr r5, ._61 + 8\n"
+ " ldr r6, ._61 + 12\n"
+ " add r0, r4, #0\n"
+ " add r1, r6, #0\n"
+ " bl __udivsi3\n"
+ " add r1, r0, #0\n"
+ " add r0, r5, #0\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x7\n"
+ " bl MenuPrint\n"
+ " add r0, r4, #0\n"
+ " add r1, r6, #0\n"
+ " bl __umodsi3\n"
+ " add r1, r0, #0\n"
+ " add r0, r5, #0\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x7\n"
+ " mov r2, #0x7\n"
+ " bl MenuPrint\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._62:\n"
+ " .align 2, 0\n"
+ "._61:\n"
+ " .word _nakamuraData\n"
+ " .word gSaveBlock1+0x1a11\n"
+ " .word gStringVar1\n"
+ " .word 0x186a0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_815F6E4()
+{
+ asm(
+ " push {r4, lr}\n"
+ " mov r0, #0x2\n"
+ " mov r1, #0x3\n"
+ " mov r2, #0xb\n"
+ " mov r3, #0x4\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " ldr r4, ._63\n"
+ " ldr r0, ._63 + 4\n"
+ " ldrb r0, [r0]\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x5\n"
+ " ldr r0, ._63 + 8\n"
+ " add r1, r1, r0\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x7\n"
+ " bl StringCopyN\n"
+ " mov r1, #0xff\n"
+ " strb r1, [r0]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x3\n"
+ " bl MenuPrint\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._64:\n"
+ " .align 2, 0\n"
+ "._63:\n"
+ " .word gStringVar1\n"
+ " .word _nakamuraData\n"
+ " .word gSaveBlock1+0x1a0a\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_815F72C()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " mov r0, #0x2\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xb\n"
+ " mov r3, #0xa\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " ldr r4, ._66\n"
+ " ldr r5, ._66 + 4\n"
+ " ldrb r1, [r5]\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x2\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r2, ._66 + 8\n"
+ " ldrb r1, [r5]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x5\n"
+ " add r0, r0, r2\n"
+ " ldr r1, ._66 + 12\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._65 @cond_branch\n"
+ " bl debug_sub_815F6E4\n"
+ " bl debug_sub_815F668\n"
+ "._65:\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._67:\n"
+ " .align 2, 0\n"
+ "._66:\n"
+ " .word gStringVar1\n"
+ " .word _nakamuraData\n"
+ " .word gSaveBlock1\n"
+ " .word 0x1a08\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_815F788()
+{
+ asm(
+ " push {lr}\n"
+ " mov r0, #0x2\n"
+ " mov r1, #0x5\n"
+ " mov r2, #0xb\n"
+ " mov r3, #0x6\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " ldr r0, ._68\n"
+ " ldr r1, ._68 + 4\n"
+ " ldrb r1, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._69:\n"
+ " .align 2, 0\n"
+ "._68:\n"
+ " .word Str_843E574\n"
+ " .word _nakamuraData+0x2\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_815F7B4()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._72\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._70 @cond_branch\n"
+ " mov r0, #0xb\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xb\n"
+ " mov r3, #0x2\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " b ._71\n"
+ "._73:\n"
+ " .align 2, 0\n"
+ "._72:\n"
+ " .word _nakamuraData+0x1\n"
+ "._70:\n"
+ " ldr r0, ._74\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x1\n"
+ " ldr r1, ._74 + 4\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0xb\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ "._71:\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._75:\n"
+ " .align 2, 0\n"
+ "._74:\n"
+ " .word _nakamuraData+0x3\n"
+ " .word Str_843E576\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_815F7F0()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " ldr r1, ._78\n"
+ " ldrb r2, [r1]\n"
+ " lsl r1, r2, #0x2\n"
+ " add r1, r1, r2\n"
+ " lsl r1, r1, #0x5\n"
+ " ldr r2, ._78 + 4\n"
+ " add r3, r1, r2\n"
+ " ldrb r1, [r3, #0x3]\n"
+ " lsl r2, r1, #0x18\n"
+ " ldrb r1, [r3, #0x2]\n"
+ " lsl r1, r1, #0x10\n"
+ " orr r2, r2, r1\n"
+ " ldrb r1, [r3, #0x1]\n"
+ " lsl r1, r1, #0x8\n"
+ " orr r2, r2, r1\n"
+ " ldrb r1, [r3]\n"
+ " orr r2, r2, r1\n"
+ " lsl r0, r0, #0x18\n"
+ " asr r1, r0, #0x18\n"
+ " mov r4, #0x9\n"
+ " ldr r0, ._78 + 8\n"
+ " ldrb r0, [r0]\n"
+ " cmp r4, r0\n"
+ " ble ._76 @cond_branch\n"
+ " add r5, r0, #0\n"
+ "._77:\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r1, r0, #0x1\n"
+ " lsl r0, r4, #0x18\n"
+ " mov r4, #0xff\n"
+ " lsl r4, r4, #0x18\n"
+ " add r0, r0, r4\n"
+ " lsr r4, r0, #0x18\n"
+ " asr r0, r0, #0x18\n"
+ " cmp r0, r5\n"
+ " bgt ._77 @cond_branch\n"
+ "._76:\n"
+ " add r2, r2, r1\n"
+ " lsr r0, r2, #0x18\n"
+ " strb r0, [r3, #0x3]\n"
+ " mov r0, #0xff\n"
+ " lsl r0, r0, #0x10\n"
+ " and r0, r0, r2\n"
+ " lsr r0, r0, #0x10\n"
+ " strb r0, [r3, #0x2]\n"
+ " mov r0, #0xff\n"
+ " lsl r0, r0, #0x8\n"
+ " and r0, r0, r2\n"
+ " lsr r0, r0, #0x8\n"
+ " strb r0, [r3, #0x1]\n"
+ " strb r2, [r3]\n"
+ " bl debug_sub_815F668\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._79:\n"
+ " .align 2, 0\n"
+ "._78:\n"
+ " .word _nakamuraData\n"
+ " .word gSaveBlock1+0x1a11\n"
+ " .word _nakamuraData+0x2\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_815F86C()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " ldr r1, ._84\n"
+ " ldrb r2, [r1]\n"
+ " lsl r1, r2, #0x2\n"
+ " add r1, r1, r2\n"
+ " lsl r1, r1, #0x5\n"
+ " ldr r2, ._84 + 4\n"
+ " add r5, r1, r2\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x0\n"
+ " lsr r6, r0, #0x18\n"
+ " asr r0, r0, #0x18\n"
+ " cmp r0, #0x64\n"
+ " bne ._80 @cond_branch\n"
+ " ldr r0, ._84 + 8\n"
+ " ldrb r1, [r0]\n"
+ " cmp r1, #0x6\n"
+ " bhi ._100 @cond_branch\n"
+ " mov r2, #0xff\n"
+ "._82:\n"
+ " add r0, r5, r1\n"
+ " strb r2, [r0]\n"
+ " add r0, r1, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r1, r0, #0x18\n"
+ " cmp r1, #0x6\n"
+ " bls ._82 @cond_branch\n"
+ " b ._100\n"
+ "._85:\n"
+ " .align 2, 0\n"
+ "._84:\n"
+ " .word _nakamuraData\n"
+ " .word gSaveBlock1+0x1a0a\n"
+ " .word _nakamuraData+0x2\n"
+ "._80:\n"
+ " ldr r0, ._87\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0x4\n"
+ " bhi ._98 @cond_branch\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._87 + 4\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov pc, r0\n"
+ "._88:\n"
+ " .align 2, 0\n"
+ "._87:\n"
+ " .word _nakamuraData+0x3\n"
+ " .word ._89\n"
+ "._89:\n"
+ " .word ._90\n"
+ " .word ._91\n"
+ " .word ._92\n"
+ " .word ._93\n"
+ " .word ._94\n"
+ "._90:\n"
+ " mov r3, #0x1\n"
+ " mov r2, #0x50\n"
+ " b ._98\n"
+ "._91:\n"
+ " mov r3, #0x51\n"
+ " mov r2, #0xa0\n"
+ " b ._98\n"
+ "._92:\n"
+ " mov r3, #0xbb\n"
+ " mov r2, #0xd4\n"
+ " b ._98\n"
+ "._93:\n"
+ " mov r3, #0xd5\n"
+ " mov r2, #0xee\n"
+ " b ._98\n"
+ "._94:\n"
+ " mov r3, #0xa1\n"
+ " mov r2, #0xaa\n"
+ "._98:\n"
+ " ldr r4, ._101\n"
+ " ldrb r1, [r4]\n"
+ " add r1, r5, r1\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, r6\n"
+ " strb r0, [r1]\n"
+ " ldrb r0, [r4]\n"
+ " add r1, r5, r0\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, r3\n"
+ " bcs ._99 @cond_branch\n"
+ " strb r2, [r1]\n"
+ "._99:\n"
+ " ldrb r0, [r4]\n"
+ " add r1, r5, r0\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, r2\n"
+ " bls ._100 @cond_branch\n"
+ " strb r3, [r1]\n"
+ "._100:\n"
+ " bl debug_sub_815F6E4\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._102:\n"
+ " .align 2, 0\n"
+ "._101:\n"
+ " .word _nakamuraData+0x2\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_815F930()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " ldr r0, ._107\n"
+ " ldrb r2, [r0]\n"
+ " mov r4, #0xa\n"
+ " cmp r2, #0\n"
+ " bne ._103 @cond_branch\n"
+ " mov r4, #0x7\n"
+ "._103:\n"
+ " ldr r5, ._107 + 4\n"
+ " ldrh r1, [r5, #0x30]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._104 @cond_branch\n"
+ " cmp r2, #0\n"
+ " beq ._105 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " bl debug_sub_815F7F0\n"
+ " b ._136\n"
+ "._108:\n"
+ " .align 2, 0\n"
+ "._107:\n"
+ " .word _nakamuraData+0x1\n"
+ " .word gMain\n"
+ "._105:\n"
+ " mov r0, #0x1\n"
+ " b ._113\n"
+ "._104:\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._110 @cond_branch\n"
+ " cmp r2, #0\n"
+ " beq ._111 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " bl debug_sub_815F7F0\n"
+ " b ._136\n"
+ "._111:\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " b ._113\n"
+ "._110:\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r3, r0, #0x10\n"
+ " cmp r3, #0\n"
+ " beq ._114 @cond_branch\n"
+ " ldr r1, ._117\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " bne ._115 @cond_branch\n"
+ " sub r0, r4, #1\n"
+ " b ._116\n"
+ "._118:\n"
+ " .align 2, 0\n"
+ "._117:\n"
+ " .word _nakamuraData+0x2\n"
+ "._115:\n"
+ " sub r0, r0, #0x1\n"
+ "._116:\n"
+ " strb r0, [r1]\n"
+ "._125:\n"
+ " bl debug_sub_815F788\n"
+ " b ._136\n"
+ "._114:\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._120 @cond_branch\n"
+ " ldr r2, ._123\n"
+ " ldrb r1, [r2]\n"
+ " sub r0, r4, #1\n"
+ " cmp r1, r0\n"
+ " bne ._121 @cond_branch\n"
+ " strb r3, [r2]\n"
+ " b ._125\n"
+ "._124:\n"
+ " .align 2, 0\n"
+ "._123:\n"
+ " .word _nakamuraData+0x2\n"
+ "._121:\n"
+ " add r0, r1, #1\n"
+ " strb r0, [r2]\n"
+ " b ._125\n"
+ "._120:\n"
+ " ldrh r1, [r5, #0x2e]\n"
+ " mov r0, #0x4\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._126 @cond_branch\n"
+ " cmp r2, #0\n"
+ " bne ._127 @cond_branch\n"
+ " ldr r4, ._129\n"
+ " ldrb r0, [r4]\n"
+ " add r0, r0, #0x1\n"
+ " mov r1, #0x5\n"
+ " bl __modsi3\n"
+ " strb r0, [r4]\n"
+ "._127:\n"
+ " bl debug_sub_815F7B4\n"
+ " b ._136\n"
+ "._130:\n"
+ " .align 2, 0\n"
+ "._129:\n"
+ " .word _nakamuraData+0x3\n"
+ "._126:\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._131 @cond_branch\n"
+ " mov r0, #0x2\n"
+ " mov r1, #0x5\n"
+ " mov r2, #0xb\n"
+ " mov r3, #0x6\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " mov r0, #0xb\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xb\n"
+ " mov r3, #0x2\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " ldr r1, ._133\n"
+ " ldr r0, ._133 + 4\n"
+ " str r0, [r1]\n"
+ " b ._136\n"
+ "._134:\n"
+ " .align 2, 0\n"
+ "._133:\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_815FA38+1\n"
+ "._131:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._136 @cond_branch\n"
+ " cmp r2, #0\n"
+ " bne ._136 @cond_branch\n"
+ " mov r0, #0x64\n"
+ "._113:\n"
+ " bl debug_sub_815F86C\n"
+ "._136:\n"
+ " mov r0, #0x0\n"
+ " pop {r4, r5}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_815FA38()
+{
+ asm(
+ " push {r4, lr}\n"
+ " ldr r0, ._139\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._137 @cond_branch\n"
+ " mov r0, #0x2\n"
+ " neg r0, r0\n"
+ " b ._138\n"
+ "._140:\n"
+ " .align 2, 0\n"
+ "._139:\n"
+ " .word gMain\n"
+ "._137:\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._141 @cond_branch\n"
+ " mov r0, #0x2\n"
+ "._138:\n"
+ " bl MoveMenuCursor\n"
+ "._161:\n"
+ " mov r0, #0x0\n"
+ " b ._142\n"
+ "._141:\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r2, r0, #0x10\n"
+ " cmp r2, #0\n"
+ " beq ._143 @cond_branch\n"
+ " ldr r1, ._146\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " bne ._144 @cond_branch\n"
+ " mov r0, #0x13\n"
+ " b ._148\n"
+ "._147:\n"
+ " .align 2, 0\n"
+ "._146:\n"
+ " .word _nakamuraData\n"
+ "._144:\n"
+ " sub r0, r0, #0x1\n"
+ " b ._148\n"
+ "._143:\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r4, r0, #0x10\n"
+ " cmp r4, #0\n"
+ " beq ._149 @cond_branch\n"
+ " ldr r1, ._152\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0x13\n"
+ " bne ._150 @cond_branch\n"
+ " strb r2, [r1]\n"
+ " b ._151\n"
+ "._153:\n"
+ " .align 2, 0\n"
+ "._152:\n"
+ " .word _nakamuraData\n"
+ "._150:\n"
+ " add r0, r0, #0x1\n"
+ "._148:\n"
+ " strb r0, [r1]\n"
+ "._151:\n"
+ " bl debug_sub_815F72C\n"
+ " b ._161\n"
+ "._149:\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._155 @cond_branch\n"
+ " ldr r1, ._159\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " beq ._161 @cond_branch\n"
+ " ldr r2, ._159 + 4\n"
+ " add r1, r0, #0\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x5\n"
+ " add r0, r0, r2\n"
+ " ldr r1, ._159 + 8\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._161 @cond_branch\n"
+ " bl GetMenuCursorPos\n"
+ " ldr r1, ._159 + 12\n"
+ " strb r0, [r1]\n"
+ " ldr r0, ._159 + 16\n"
+ " strb r4, [r0]\n"
+ " bl debug_sub_815F788\n"
+ " bl debug_sub_815F7B4\n"
+ " ldr r1, ._159 + 20\n"
+ " ldr r0, ._159 + 24\n"
+ " str r0, [r1]\n"
+ " b ._161\n"
+ "._160:\n"
+ " .align 2, 0\n"
+ "._159:\n"
+ " .word _nakamuraData\n"
+ " .word gSaveBlock1\n"
+ " .word 0x1a08\n"
+ " .word _nakamuraData+0x1\n"
+ " .word _nakamuraData+0x2\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_815F930+1\n"
+ "._155:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._161 @cond_branch\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ "._142:\n"
+ " pop {r4}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 debug_sub_815FB1C()
+{
+ asm(
+ " push {lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " ldr r0, ._162\n"
+ " mov r1, #0x0\n"
+ " strb r1, [r0]\n"
+ " ldr r0, ._162 + 4\n"
+ " strb r1, [r0]\n"
+ " ldr r1, ._162 + 8\n"
+ " ldr r0, ._162 + 12\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuZeroFillWindowRect\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xc\n"
+ " mov r3, #0xb\n"
+ " bl MenuDrawTextWindow\n"
+ " bl debug_sub_815F72C\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " mov r0, #0xb\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x3\n"
+ " mov r3, #0x3\n"
+ " bl InitMenu\n"
+ " mov r0, #0x0\n"
+ " add sp, sp, #0x8\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._163:\n"
+ " .align 2, 0\n"
+ "._162:\n"
+ " .word _nakamuraData\n"
+ " .word _nakamuraData+0x3\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_815FA38+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_815FB78()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._166\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._164 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " b ._165\n"
+ "._167:\n"
+ " .align 2, 0\n"
+ "._166:\n"
+ " .word gMain\n"
+ "._164:\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._168 @cond_branch\n"
+ " mov r0, #0x1\n"
+ "._165:\n"
+ " bl MoveMenuCursor\n"
+ " mov r0, #0x0\n"
+ " b ._177\n"
+ "._168:\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._170 @cond_branch\n"
+ " bl CloseMenu\n"
+ " bl GetMenuCursorPos\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._171 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " beq ._172 @cond_branch\n"
+ " b ._175\n"
+ "._171:\n"
+ " bl debug_sub_814A714\n"
+ " b ._175\n"
+ "._172:\n"
+ " bl ClearRoamerData\n"
+ " bl ClearRoamerLocationData\n"
+ " b ._175\n"
+ "._170:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._176 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._177\n"
+ "._176:\n"
+ " bl CloseMenu\n"
+ "._175:\n"
+ " mov r0, #0x1\n"
+ "._177:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 debug_sub_815FBE8()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " ldr r1, ._178\n"
+ " ldr r0, ._178 + 4\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuZeroFillWindowRect\n"
+ " ldr r4, ._178 + 8\n"
+ " add r0, r4, #0\n"
+ " bl debug_sub_814A73C\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xb\n"
+ " mov r3, #0x9\n"
+ " bl MenuDrawTextWindow\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._178 + 12\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x3\n"
+ " bl MenuPrint\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " mov r0, #0xa\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x3\n"
+ " mov r3, #0x3\n"
+ " bl InitMenu\n"
+ " mov r0, #0x0\n"
+ " add sp, sp, #0x8\n"
+ " pop {r4}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._179:\n"
+ " .align 2, 0\n"
+ "._178:\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_815FB78+1\n"
+ " .word gStringVar1\n"
+ " .word Str_843E580\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 debug_sub_815FC54()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r3, #0x0\n"
+ " ldr r7, ._181\n"
+ " mov r6, #0xe8\n"
+ " lsl r6, r6, #0x3\n"
+ " ldr r5, ._181 + 4\n"
+ " ldr r4, ._181 + 8\n"
+ "._180:\n"
+ " lsl r1, r3, #0x2\n"
+ " add r1, r1, r7\n"
+ " add r2, r3, #0\n"
+ " add r2, r2, #0x85\n"
+ " add r0, r1, r6\n"
+ " strh r2, [r0]\n"
+ " add r1, r1, r4\n"
+ " strh r5, [r1]\n"
+ " add r0, r3, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r3, r0, #0x10\n"
+ " cmp r3, #0x2a\n"
+ " bls ._180 @cond_branch\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._182:\n"
+ " .align 2, 0\n"
+ "._181:\n"
+ " .word gSaveBlock1\n"
+ " .word 0x3e7\n"
+ " .word 0x742\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 debug_sub_815FC94()
+{
+ asm(
+ " push {lr}\n"
+ " bl ClearDecorationInventories\n"
+ " bl debug_sub_814A3A8\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuZeroFillWindowRect\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_815FCB4()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r9\n"
+ " mov r6, r8\n"
+ " push {r6, r7}\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " mov r7, #0x0\n"
+ " ldr r5, ._188\n"
+ " ldr r0, [r5]\n"
+ " ldr r0, [r0, #0x4]\n"
+ " mov r1, #0x3\n"
+ " bl __divsi3\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " add r1, r0, #0\n"
+ " mul r1, r1, r4\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r6, r1, #0x10\n"
+ " add r0, r6, r0\n"
+ " mov r9, r5\n"
+ " cmp r6, r0\n"
+ " bge ._183 @cond_branch\n"
+ " mov r8, r0\n"
+ "._187:\n"
+ " mov r4, #0x0\n"
+ " mov r1, r9\n"
+ " ldr r0, [r1]\n"
+ " ldr r0, [r0]\n"
+ " add r5, r6, #1\n"
+ " cmp r4, r0\n"
+ " bge ._184 @cond_branch\n"
+ " ldr r0, ._188\n"
+ " mov r9, r0\n"
+ "._186:\n"
+ " add r0, r4, #7\n"
+ " add r1, r6, #7\n"
+ " bl MapGridGetMetatileBehaviorAt\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl sub_805759C\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x1\n"
+ " bne ._185 @cond_branch\n"
+ " add r0, r7, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r7, r0, #0x10\n"
+ "._185:\n"
+ " add r0, r4, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r4, r0, #0x10\n"
+ " ldr r0, ._188\n"
+ " ldr r0, [r0]\n"
+ " ldr r0, [r0]\n"
+ " cmp r4, r0\n"
+ " blt ._186 @cond_branch\n"
+ "._184:\n"
+ " lsl r0, r5, #0x10\n"
+ " lsr r6, r0, #0x10\n"
+ " cmp r6, r8\n"
+ " blt ._187 @cond_branch\n"
+ "._183:\n"
+ " add r0, r7, #0\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"
+ "._189:\n"
+ " .align 2, 0\n"
+ "._188:\n"
+ " .word gMapHeader\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_815FD40()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " mov r6, #0x0\n"
+ " mov r4, sp\n"
+ " add r4, r4, #0x2\n"
+ " mov r0, sp\n"
+ " add r1, r4, #0\n"
+ " bl GetXYCoordsOneStepInFrontOfPlayer\n"
+ " mov r1, sp\n"
+ " mov r0, sp\n"
+ " ldrh r0, [r0]\n"
+ " sub r0, r0, #0x7\n"
+ " strh r0, [r1]\n"
+ " ldrh r0, [r4]\n"
+ " sub r0, r0, #0x7\n"
+ " strh r0, [r4]\n"
+ " mov r5, #0x0\n"
+ " ldr r1, ._192\n"
+ " ldr r0, [r1]\n"
+ " ldr r0, [r0, #0x4]\n"
+ " add r7, r4, #0\n"
+ " cmp r6, r0\n"
+ " bge ._190 @cond_branch\n"
+ "._199:\n"
+ " mov r4, #0x0\n"
+ " ldr r0, [r1]\n"
+ " b ._191\n"
+ "._193:\n"
+ " .align 2, 0\n"
+ "._192:\n"
+ " .word gMapHeader\n"
+ "._198:\n"
+ " add r0, r4, #7\n"
+ " add r1, r5, #7\n"
+ " bl MapGridGetMetatileBehaviorAt\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl sub_805759C\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x1\n"
+ " bne ._196 @cond_branch\n"
+ " add r0, r6, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r6, r0, #0x10\n"
+ " mov r0, sp\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r0, r1]\n"
+ " cmp r0, r4\n"
+ " bne ._196 @cond_branch\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r7, r1]\n"
+ " cmp r0, r5\n"
+ " bne ._196 @cond_branch\n"
+ " add r0, r6, #0\n"
+ " b ._197\n"
+ "._196:\n"
+ " add r0, r4, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r4, r0, #0x10\n"
+ " ldr r0, ._200\n"
+ " ldr r0, [r0]\n"
+ "._191:\n"
+ " ldr r0, [r0]\n"
+ " cmp r4, r0\n"
+ " blt ._198 @cond_branch\n"
+ " add r0, r5, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r5, r0, #0x10\n"
+ " ldr r1, ._200\n"
+ " ldr r0, [r1]\n"
+ " ldr r0, [r0, #0x4]\n"
+ " cmp r5, r0\n"
+ " blt ._199 @cond_branch\n"
+ "._190:\n"
+ " add r0, r6, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ "._197:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._201:\n"
+ " .align 2, 0\n"
+ "._200:\n"
+ " .word gMapHeader\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_815FDE4()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._205\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._202 @cond_branch\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._203 @cond_branch\n"
+ "._202:\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuZeroFillWindowRect\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " b ._204\n"
+ "._206:\n"
+ " .align 2, 0\n"
+ "._205:\n"
+ " .word gMain\n"
+ "._203:\n"
+ " mov r0, #0x0\n"
+ "._204:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 debug_sub_815FE1C()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuZeroFillWindowRect\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x10\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r0, ._210\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r6, ._210 + 4\n"
+ " mov r0, #0x0\n"
+ " bl debug_sub_815FCB4\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x5\n"
+ " mov r2, #0x3\n"
+ " bl MenuPrint\n"
+ " mov r0, #0x1\n"
+ " bl debug_sub_815FCB4\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x5\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " mov r0, #0x2\n"
+ " bl debug_sub_815FCB4\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x5\n"
+ " mov r2, #0x7\n"
+ " bl MenuPrint\n"
+ " mov r0, #0x0\n"
+ " bl debug_sub_8092344\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0xb\n"
+ " mov r2, #0x3\n"
+ " bl MenuPrint\n"
+ " mov r0, #0x1\n"
+ " bl debug_sub_8092344\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0xb\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " mov r0, #0x2\n"
+ " bl debug_sub_8092344\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0xb\n"
+ " mov r2, #0x7\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._210 + 8\n"
+ " ldr r1, ._210 + 12\n"
+ " add r0, r0, r1\n"
+ " ldrh r0, [r0]\n"
+ " bl FeebasSeedRng\n"
+ " mov r0, #0x0\n"
+ " bl debug_sub_815FCB4\n"
+ " add r4, r0, #0\n"
+ " mov r0, #0x1\n"
+ " bl debug_sub_815FCB4\n"
+ " add r5, r0, #0\n"
+ " mov r0, #0x2\n"
+ " bl debug_sub_815FCB4\n"
+ " add r4, r4, r5\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r7, r0, #0x10\n"
+ " mov r5, #0x0\n"
+ "._209:\n"
+ " bl FeebasRandom\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " add r1, r7, #0\n"
+ " bl __umodsi3\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r1, r0, #0x10\n"
+ " cmp r1, #0\n"
+ " bne ._207 @cond_branch\n"
+ " add r1, r7, #0\n"
+ "._207:\n"
+ " sub r0, r1, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " cmp r0, #0x2\n"
+ " bls ._208 @cond_branch\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x3\n"
+ " bl __umodsi3\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " lsl r4, r0, #0x2\n"
+ " add r4, r4, r0\n"
+ " add r4, r4, #0x2\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x3\n"
+ " bl __udivsi3\n"
+ " add r2, r0, #0\n"
+ " lsl r2, r2, #0x19\n"
+ " mov r0, #0xb0\n"
+ " lsl r0, r0, #0x14\n"
+ " add r2, r2, r0\n"
+ " lsr r2, r2, #0x18\n"
+ " add r0, r6, #0\n"
+ " add r1, r4, #0\n"
+ " bl MenuPrint\n"
+ " add r0, r5, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r5, r0, #0x10\n"
+ "._208:\n"
+ " cmp r5, #0x6\n"
+ " bne ._209 @cond_branch\n"
+ " ldr r4, ._210 + 4\n"
+ " bl debug_sub_815FD40\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x11\n"
+ " bl MenuPrint\n"
+ " ldr r1, ._210 + 16\n"
+ " ldr r0, ._210 + 20\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._211:\n"
+ " .align 2, 0\n"
+ "._210:\n"
+ " .word Str_843E58D\n"
+ " .word gStringVar1\n"
+ " .word gSaveBlock1\n"
+ " .word 0x2dd6\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_815FDE4+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_815FFDC()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " mov r0, #0xe\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0xd\n"
+ " bl MenuDrawTextWindow\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0xe\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r0, ._214\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xf\n"
+ " bl MenuPrint\n"
+ " mov r5, #0x0\n"
+ " ldr r0, ._214 + 4\n"
+ " mov r8, r0\n"
+ "._216:\n"
+ " mov r0, #0x64\n"
+ " add r1, r5, #0\n"
+ " mul r1, r1, r0\n"
+ " ldr r0, ._214 + 8\n"
+ " add r6, r1, r0\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0xb\n"
+ " bl GetMonData\n"
+ " lsl r1, r5, #0x2\n"
+ " mov r2, r8\n"
+ " add r4, r1, r2\n"
+ " strh r0, [r4]\n"
+ " lsl r0, r0, #0x10\n"
+ " add r7, r1, #0\n"
+ " cmp r0, #0\n"
+ " beq ._212 @cond_branch\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x38\n"
+ " bl GetMonData\n"
+ " strb r0, [r4, #0x2]\n"
+ " add r0, r5, #0\n"
+ " bl debug_sub_816009C\n"
+ " add r0, r5, #0\n"
+ " bl debug_sub_81600D0\n"
+ " add r0, r5, #0\n"
+ " bl debug_sub_816013C\n"
+ " b ._213\n"
+ "._215:\n"
+ " .align 2, 0\n"
+ "._214:\n"
+ " .word Str_843E5D4\n"
+ " .word _nakamuraStatic\n"
+ " .word gPlayerParty\n"
+ "._212:\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r4, #0x2]\n"
+ "._213:\n"
+ " mov r0, r8\n"
+ " add r1, r7, r0\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1, #0x3]\n"
+ " add r0, r5, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " cmp r5, #0x5\n"
+ " bls ._216 @cond_branch\n"
+ " ldr r1, ._217\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ " mov r0, #0xf\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xff\n"
+ " bl unref_sub_80F924C\n"
+ " ldr r1, ._217 + 4\n"
+ " ldr r0, ._217 + 8\n"
+ " str r0, [r1]\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._218:\n"
+ " .align 2, 0\n"
+ "._217:\n"
+ " .word _nakamuraData+0x4\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_8160498+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_816009C()
+{
+ asm(
+ " push {lr}\n"
+ " add r2, r0, #0\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r2, r2, #0x18\n"
+ " ldr r1, ._219\n"
+ " lsl r0, r2, #0x2\n"
+ " add r0, r0, r1\n"
+ " mov r3, #0x0\n"
+ " ldsh r1, [r0, r3]\n"
+ " mov r0, #0xb\n"
+ " mul r0, r0, r1\n"
+ " ldr r1, ._219 + 4\n"
+ " add r0, r0, r1\n"
+ " lsl r2, r2, #0x1\n"
+ " add r2, r2, #0x1\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r2, r2, #0x18\n"
+ " mov r1, #0x10\n"
+ " bl MenuPrint\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._220:\n"
+ " .align 2, 0\n"
+ "._219:\n"
+ " .word _nakamuraStatic\n"
+ " .word gSpeciesNames\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_81600D0()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " add r5, r4, #0\n"
+ " ldr r1, ._223\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " bl memcpy\n"
+ " mov r0, #0x64\n"
+ " mul r0, r0, r4\n"
+ " ldr r1, ._223 + 4\n"
+ " add r0, r0, r1\n"
+ " bl GetMonGender\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._221 @cond_branch\n"
+ " ldr r0, ._223 + 8\n"
+ " b ._222\n"
+ "._224:\n"
+ " .align 2, 0\n"
+ "._223:\n"
+ " .word Str_843E5F0\n"
+ " .word gPlayerParty\n"
+ " .word gOtherText_MaleSymbol2\n"
+ "._221:\n"
+ " cmp r0, #0xfe\n"
+ " bne ._225 @cond_branch\n"
+ " ldr r0, ._227\n"
+ "._222:\n"
+ " lsl r2, r4, #0x1\n"
+ " add r2, r2, #0x1\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r2, r2, #0x18\n"
+ " mov r1, #0x17\n"
+ " bl MenuPrint\n"
+ " b ._226\n"
+ "._228:\n"
+ " .align 2, 0\n"
+ "._227:\n"
+ " .word gOtherText_FemaleSymbolAndLv\n"
+ "._225:\n"
+ " lsl r2, r5, #0x1\n"
+ " add r2, r2, #0x1\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r2, r2, #0x18\n"
+ " mov r0, sp\n"
+ " mov r1, #0x17\n"
+ " bl MenuPrint\n"
+ "._226:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_816013C()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " ldr r5, ._229\n"
+ " ldr r1, ._229 + 4\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x2\n"
+ " ldrsb r1, [r0, r1]\n"
+ " add r0, r5, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " lsl r4, r4, #0x1\n"
+ " add r4, r4, #0x1\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x1a\n"
+ " add r2, r4, #0\n"
+ " bl MenuPrint\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._230:\n"
+ " .align 2, 0\n"
+ "._229:\n"
+ " .word gStringVar1\n"
+ " .word _nakamuraStatic\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_816017C()
+{
+ asm(
+ " push {r4, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " lsl r3, r4, #0x1\n"
+ " add r1, r3, #1\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " add r3, r3, #0x2\n"
+ " lsl r3, r3, #0x18\n"
+ " lsr r3, r3, #0x18\n"
+ " mov r0, #0x10\n"
+ " mov r2, #0x1c\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " ldr r1, ._232\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r0, r1]\n"
+ " cmp r0, #0\n"
+ " beq ._231 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " bl debug_sub_816009C\n"
+ " add r0, r4, #0\n"
+ " bl debug_sub_81600D0\n"
+ " add r0, r4, #0\n"
+ " bl debug_sub_816013C\n"
+ "._231:\n"
+ " mov r0, #0x5\n"
+ " bl debug_sub_81603B8\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._233:\n"
+ " .align 2, 0\n"
+ "._232:\n"
+ " .word _nakamuraStatic\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_81601C8()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add sp, sp, #0xfffffff0\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r3, r1, #0x18\n"
+ " ldr r1, ._239\n"
+ " lsl r0, r5, #0x2\n"
+ " add r2, r0, r1\n"
+ " mov r4, #0x0\n"
+ " ldsh r0, [r2, r4]\n"
+ " cmp r0, #0\n"
+ " bne ._236 @cond_branch\n"
+ " ldrb r0, [r2, #0x3]\n"
+ " cmp r0, #0\n"
+ " bne ._236 @cond_branch\n"
+ " cmp r3, #0x1\n"
+ " bne ._236 @cond_branch\n"
+ " mov r0, #0x8a\n"
+ " lsl r0, r0, #0x1\n"
+ " strh r0, [r2]\n"
+ "._236:\n"
+ " lsl r0, r5, #0x2\n"
+ " add r4, r0, r1\n"
+ " lsl r0, r3, #0x18\n"
+ " asr r0, r0, #0x18\n"
+ " ldrh r1, [r4]\n"
+ " add r2, r0, r1\n"
+ " mov r3, #0x0\n"
+ " strh r2, [r4]\n"
+ " lsl r1, r2, #0x10\n"
+ " mov r0, #0xcd\n"
+ " lsl r0, r0, #0x11\n"
+ " cmp r1, r0\n"
+ " ble ._237 @cond_branch\n"
+ " ldr r1, ._239 + 4\n"
+ " add r0, r2, r1\n"
+ " strh r0, [r4]\n"
+ "._237:\n"
+ " ldrh r1, [r4]\n"
+ " mov r2, #0x0\n"
+ " ldsh r0, [r4, r2]\n"
+ " cmp r0, #0\n"
+ " bge ._238 @cond_branch\n"
+ " ldr r2, ._239 + 8\n"
+ " add r0, r1, r2\n"
+ " strh r0, [r4]\n"
+ "._238:\n"
+ " mov r0, #0x64\n"
+ " mul r0, r0, r5\n"
+ " ldr r1, ._239 + 12\n"
+ " add r0, r0, r1\n"
+ " ldrh r1, [r4]\n"
+ " ldrb r2, [r4, #0x2]\n"
+ " str r3, [sp]\n"
+ " str r3, [sp, #0x4]\n"
+ " str r3, [sp, #0x8]\n"
+ " str r3, [sp, #0xc]\n"
+ " mov r3, #0x20\n"
+ " bl CreateMon\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r4, #0x3]\n"
+ " add sp, sp, #0x10\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._240:\n"
+ " .align 2, 0\n"
+ "._239:\n"
+ " .word _nakamuraStatic\n"
+ " .word 0xfffffe65\n"
+ " .word 0x19b\n"
+ " .word gPlayerParty\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8160258()
+{
+ asm(
+ " push {lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " ldr r1, ._242\n"
+ " lsl r0, r2, #0x2\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r0, r1]\n"
+ " cmp r0, #0\n"
+ " beq ._241 @cond_branch\n"
+ " add r0, r2, #0\n"
+ " bl debug_sub_816062C\n"
+ "._241:\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._243:\n"
+ " .align 2, 0\n"
+ "._242:\n"
+ " .word _nakamuraStatic\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_816027C()
+{
+ asm(
+ " push {r4, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " add r4, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r2, r1, #0x18\n"
+ " ldr r1, ._247\n"
+ " lsl r0, r4, #0x2\n"
+ " add r3, r0, r1\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r3, r1]\n"
+ " cmp r0, #0\n"
+ " beq ._244 @cond_branch\n"
+ " lsl r0, r2, #0x18\n"
+ " asr r0, r0, #0x18\n"
+ " ldrb r1, [r3, #0x2]\n"
+ " add r0, r0, r1\n"
+ " strb r0, [r3, #0x2]\n"
+ " lsl r0, r0, #0x18\n"
+ " asr r0, r0, #0x18\n"
+ " cmp r0, #0x64\n"
+ " ble ._245 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r3, #0x2]\n"
+ "._245:\n"
+ " mov r0, #0x2\n"
+ " ldrsb r0, [r3, r0]\n"
+ " cmp r0, #0\n"
+ " bgt ._246 @cond_branch\n"
+ " mov r0, #0x64\n"
+ " strb r0, [r3, #0x2]\n"
+ "._246:\n"
+ " mov r0, #0x64\n"
+ " mul r4, r4, r0\n"
+ " ldr r0, ._247 + 4\n"
+ " add r4, r4, r0\n"
+ " ldr r2, ._247 + 8\n"
+ " mov r0, #0x0\n"
+ " ldsh r1, [r3, r0]\n"
+ " lsl r0, r1, #0x3\n"
+ " sub r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r2\n"
+ " ldrb r1, [r0, #0x13]\n"
+ " mov r0, #0xca\n"
+ " lsl r0, r0, #0x1\n"
+ " add r2, r1, #0\n"
+ " mul r2, r2, r0\n"
+ " mov r0, #0x2\n"
+ " ldrsb r0, [r3, r0]\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._247 + 12\n"
+ " add r0, r0, r1\n"
+ " add r2, r2, r0\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x19\n"
+ " bl SetMonData\n"
+ " add r0, r4, #0\n"
+ " bl debug_sub_803F55C\n"
+ "._244:\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._248:\n"
+ " .align 2, 0\n"
+ "._247:\n"
+ " .word _nakamuraStatic\n"
+ " .word gPlayerParty\n"
+ " .word gBaseStats\n"
+ " .word gExperienceTables\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8160308()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r9\n"
+ " mov r6, r8\n"
+ " push {r6, r7}\n"
+ " add sp, sp, #0xffffff8c\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuZeroFillWindowRect\n"
+ " mov r2, #0x0\n"
+ "._252:\n"
+ " add r1, r2, #1\n"
+ " lsl r0, r1, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " mov r8, r1\n"
+ " cmp r5, #0x5\n"
+ " bhi ._249 @cond_branch\n"
+ " mov r0, #0x64\n"
+ " mov r9, r0\n"
+ " mov r0, r9\n"
+ " mul r0, r0, r2\n"
+ " ldr r7, ._254\n"
+ " add r6, r0, r7\n"
+ "._251:\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0xb\n"
+ " mov r2, #0x0\n"
+ " bl GetMonData\n"
+ " cmp r0, #0\n"
+ " bne ._250 @cond_branch\n"
+ " add r0, sp, #0x10\n"
+ " add r1, r6, #0\n"
+ " mov r2, #0x64\n"
+ " bl memcpy\n"
+ " mov r4, r9\n"
+ " mul r4, r4, r5\n"
+ " add r4, r4, r7\n"
+ " add r0, r6, #0\n"
+ " add r1, r4, #0\n"
+ " mov r2, #0x64\n"
+ " bl memcpy\n"
+ " add r0, r4, #0\n"
+ " add r1, sp, #0x10\n"
+ " mov r2, #0x64\n"
+ " bl memcpy\n"
+ "._250:\n"
+ " add r0, r5, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " cmp r5, #0x5\n"
+ " bls ._251 @cond_branch\n"
+ "._249:\n"
+ " mov r1, r8\n"
+ " lsl r0, r1, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " cmp r2, #0x4\n"
+ " bls ._252 @cond_branch\n"
+ " bl CalculatePlayerPartyCount\n"
+ " ldr r4, ._254 + 4\n"
+ " ldrb r1, [r4]\n"
+ " cmp r1, #0\n"
+ " bne ._253 @cond_branch\n"
+ " ldr r0, ._254\n"
+ " str r1, [sp]\n"
+ " str r1, [sp, #0x4]\n"
+ " str r1, [sp, #0x8]\n"
+ " str r1, [sp, #0xc]\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xa\n"
+ " mov r3, #0x20\n"
+ " bl CreateMon\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r4]\n"
+ "._253:\n"
+ " add sp, sp, #0x74\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"
+ "._255:\n"
+ " .align 2, 0\n"
+ "._254:\n"
+ " .word gPlayerParty\n"
+ " .word gPlayerPartyCount\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_81603B8()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r7, ._259\n"
+ " ldrb r4, [r7]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x6\n"
+ " bl __udivsi3\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x6\n"
+ " bl __umodsi3\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " ldr r0, ._259 + 4\n"
+ " add r0, r5, r0\n"
+ " ldrb r2, [r0]\n"
+ " lsl r3, r4, #0x1\n"
+ " add r1, r3, #1\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " add r3, r3, #0x2\n"
+ " lsl r3, r3, #0x18\n"
+ " lsr r3, r3, #0x18\n"
+ " add r0, r2, #0\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " cmp r6, #0\n"
+ " bne ._256 @cond_branch\n"
+ " cmp r4, #0\n"
+ " beq ._257 @cond_branch\n"
+ " ldrb r0, [r7]\n"
+ " sub r0, r0, #0x1\n"
+ " b ._258\n"
+ "._260:\n"
+ " .align 2, 0\n"
+ "._259:\n"
+ " .word _nakamuraData+0x4\n"
+ " .word _843E5D1\n"
+ "._257:\n"
+ " lsl r0, r5, #0x1\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r0, #0x5\n"
+ "._258:\n"
+ " strb r0, [r7]\n"
+ "._256:\n"
+ " ldr r1, ._264\n"
+ " cmp r6, #0x1\n"
+ " bne ._261 @cond_branch\n"
+ " cmp r4, #0x5\n"
+ " beq ._262 @cond_branch\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " b ._263\n"
+ "._265:\n"
+ " .align 2, 0\n"
+ "._264:\n"
+ " .word _nakamuraData+0x4\n"
+ "._262:\n"
+ " lsl r0, r5, #0x1\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x1\n"
+ "._263:\n"
+ " strb r0, [r1]\n"
+ "._261:\n"
+ " cmp r6, #0x2\n"
+ " bne ._266 @cond_branch\n"
+ " cmp r5, #0\n"
+ " beq ._267 @cond_branch\n"
+ " ldrb r0, [r1]\n"
+ " sub r0, r0, #0x6\n"
+ " b ._268\n"
+ "._267:\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0xc\n"
+ "._268:\n"
+ " strb r0, [r1]\n"
+ "._266:\n"
+ " cmp r6, #0x3\n"
+ " bne ._271 @cond_branch\n"
+ " cmp r5, #0x2\n"
+ " beq ._270 @cond_branch\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x6\n"
+ " strb r0, [r1]\n"
+ " b ._271\n"
+ "._270:\n"
+ " strb r4, [r1]\n"
+ "._271:\n"
+ " ldrb r4, [r1]\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x6\n"
+ " bl __udivsi3\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x6\n"
+ " bl __umodsi3\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " ldr r0, ._272\n"
+ " add r0, r5, r0\n"
+ " ldrb r0, [r0]\n"
+ " lsr r1, r1, #0x17\n"
+ " add r1, r1, #0x1\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " mov r2, #0xff\n"
+ " bl unref_sub_80F924C\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._273:\n"
+ " .align 2, 0\n"
+ "._272:\n"
+ " .word _843E5D1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8160498()
+{
+ asm(
+ " push {r4, lr}\n"
+ " ldr r1, ._276\n"
+ " ldrh r2, [r1, #0x2e]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._274 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._281\n"
+ "._277:\n"
+ " .align 2, 0\n"
+ "._276:\n"
+ " .word gMain\n"
+ "._274:\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._278 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " b ._281\n"
+ "._278:\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._280 @cond_branch\n"
+ " mov r0, #0x2\n"
+ " b ._281\n"
+ "._280:\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._282 @cond_branch\n"
+ " mov r0, #0x3\n"
+ "._281:\n"
+ " bl debug_sub_81603B8\n"
+ " mov r0, #0x0\n"
+ " b ._311\n"
+ "._282:\n"
+ " ldrh r1, [r1, #0x30]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._284 @cond_branch\n"
+ " ldr r4, ._289\n"
+ " ldrb r0, [r4]\n"
+ " cmp r0, #0x5\n"
+ " bhi ._285 @cond_branch\n"
+ " mov r1, #0x1\n"
+ " bl debug_sub_81601C8\n"
+ "._285:\n"
+ " ldrb r0, [r4]\n"
+ " sub r0, r0, #0x6\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x5\n"
+ " bhi ._286 @cond_branch\n"
+ " ldrb r0, [r4]\n"
+ " mov r1, #0x6\n"
+ " bl __umodsi3\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_8160258\n"
+ "._286:\n"
+ " ldrb r0, [r4]\n"
+ " sub r0, r0, #0xc\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x5\n"
+ " bhi ._306 @cond_branch\n"
+ " ldrb r0, [r4]\n"
+ " mov r1, #0x6\n"
+ " bl __umodsi3\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r1, #0x1\n"
+ " b ._300\n"
+ "._290:\n"
+ " .align 2, 0\n"
+ "._289:\n"
+ " .word _nakamuraData+0x4\n"
+ "._284:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._291 @cond_branch\n"
+ " ldr r4, ._294\n"
+ " ldrb r0, [r4]\n"
+ " cmp r0, #0x5\n"
+ " bhi ._304 @cond_branch\n"
+ " mov r1, #0x1\n"
+ " neg r1, r1\n"
+ " b ._293\n"
+ "._295:\n"
+ " .align 2, 0\n"
+ "._294:\n"
+ " .word _nakamuraData+0x4\n"
+ "._291:\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._296 @cond_branch\n"
+ " ldr r4, ._301\n"
+ " ldrb r0, [r4]\n"
+ " cmp r0, #0x5\n"
+ " bhi ._297 @cond_branch\n"
+ " mov r1, #0xa\n"
+ " bl debug_sub_81601C8\n"
+ "._297:\n"
+ " ldrb r0, [r4]\n"
+ " sub r0, r0, #0x6\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x5\n"
+ " bhi ._298 @cond_branch\n"
+ " ldrb r0, [r4]\n"
+ " mov r1, #0x6\n"
+ " bl __umodsi3\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_8160258\n"
+ "._298:\n"
+ " ldrb r0, [r4]\n"
+ " sub r0, r0, #0xc\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x5\n"
+ " bhi ._306 @cond_branch\n"
+ " ldrb r0, [r4]\n"
+ " mov r1, #0x6\n"
+ " bl __umodsi3\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r1, #0x1\n"
+ " b ._300\n"
+ "._302:\n"
+ " .align 2, 0\n"
+ "._301:\n"
+ " .word _nakamuraData+0x4\n"
+ "._296:\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._303 @cond_branch\n"
+ " ldr r4, ._308\n"
+ " ldrb r0, [r4]\n"
+ " cmp r0, #0x5\n"
+ " bhi ._304 @cond_branch\n"
+ " mov r1, #0xa\n"
+ " neg r1, r1\n"
+ "._293:\n"
+ " bl debug_sub_81601C8\n"
+ "._304:\n"
+ " ldrb r0, [r4]\n"
+ " sub r0, r0, #0x6\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x5\n"
+ " bhi ._305 @cond_branch\n"
+ " ldrb r0, [r4]\n"
+ " mov r1, #0x6\n"
+ " bl __umodsi3\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_8160258\n"
+ "._305:\n"
+ " ldrb r0, [r4]\n"
+ " sub r0, r0, #0xc\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x5\n"
+ " bhi ._306 @cond_branch\n"
+ " ldrb r0, [r4]\n"
+ " mov r1, #0x6\n"
+ " bl __umodsi3\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r1, #0x1\n"
+ " neg r1, r1\n"
+ "._300:\n"
+ " bl debug_sub_816027C\n"
+ "._306:\n"
+ " ldrb r0, [r4]\n"
+ " mov r1, #0x6\n"
+ " bl __umodsi3\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_816017C\n"
+ " mov r0, #0x0\n"
+ " b ._311\n"
+ "._309:\n"
+ " .align 2, 0\n"
+ "._308:\n"
+ " .word _nakamuraData+0x4\n"
+ "._303:\n"
+ " mov r0, #0x8\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " bne ._310 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._311\n"
+ "._310:\n"
+ " bl debug_sub_8160308\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ "._311:\n"
+ " pop {r4}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_816062C()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r9\n"
+ " mov r6, r8\n"
+ " push {r6, r7}\n"
+ " add sp, sp, #0xfffffff0\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r8, r0\n"
+ " mov r0, #0x64\n"
+ " mov r4, r8\n"
+ " mul r4, r4, r0\n"
+ " ldr r0, ._316\n"
+ " add r4, r4, r0\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0xb\n"
+ " bl GetMonData\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r7, r0, #0x10\n"
+ " add r0, r4, #0\n"
+ " bl GetMonGender\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " ldr r1, ._316 + 4\n"
+ " lsl r0, r7, #0x3\n"
+ " sub r0, r0, r7\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldrb r6, [r0, #0x10]\n"
+ " cmp r6, #0\n"
+ " beq ._313 @cond_branch\n"
+ " cmp r6, #0xfe\n"
+ " beq ._313 @cond_branch\n"
+ " cmp r6, #0xff\n"
+ " bne ._314 @cond_branch\n"
+ "._313:\n"
+ " mov r0, #0x64\n"
+ " mov r1, r8\n"
+ " mul r1, r1, r0\n"
+ " add r0, r1, #0\n"
+ " ldr r1, ._316\n"
+ " add r0, r0, r1\n"
+ " bl GetMonGender\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " b ._320\n"
+ "._317:\n"
+ " .align 2, 0\n"
+ "._316:\n"
+ " .word gPlayerParty\n"
+ " .word gBaseStats\n"
+ "._314:\n"
+ " cmp r2, #0\n"
+ " beq ._318 @cond_branch\n"
+ " cmp r2, #0xfe\n"
+ " beq ._319 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._320\n"
+ "._318:\n"
+ " mov r6, #0xfe\n"
+ " b ._321\n"
+ "._319:\n"
+ " mov r6, #0x0\n"
+ "._321:\n"
+ " mov r0, r8\n"
+ " lsl r0, r0, #0x2\n"
+ " mov r9, r0\n"
+ "._322:\n"
+ " bl Random\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r5, r0, #0x10\n"
+ " bl Random\n"
+ " lsl r0, r0, #0x10\n"
+ " orr r5, r5, r0\n"
+ " add r0, r7, #0\n"
+ " add r1, r5, #0\n"
+ " bl GetGenderFromSpeciesAndPersonality\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, r6\n"
+ " bne ._322 @cond_branch\n"
+ " mov r0, #0x64\n"
+ " mov r4, r8\n"
+ " mul r4, r4, r0\n"
+ " ldr r0, ._323\n"
+ " add r4, r4, r0\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x42\n"
+ " bl GetMonData\n"
+ " ldr r0, ._323 + 4\n"
+ " add r0, r0, r9\n"
+ " ldrh r1, [r0]\n"
+ " ldrb r2, [r0, #0x2]\n"
+ " mov r0, #0x1\n"
+ " str r0, [sp]\n"
+ " str r5, [sp, #0x4]\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp, #0x8]\n"
+ " str r0, [sp, #0xc]\n"
+ " add r0, r4, #0\n"
+ " mov r3, #0x20\n"
+ " bl CreateMon\n"
+ " add r0, r6, #0\n"
+ "._320:\n"
+ " add sp, sp, #0x10\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"
+ "._324:\n"
+ " .align 2, 0\n"
+ "._323:\n"
+ " .word gPlayerParty\n"
+ " .word _nakamuraStatic\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8160714()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r9\n"
+ " mov r6, r8\n"
+ " push {r6, r7}\n"
+ " add sp, sp, #0xfffffff0\n"
+ " add r6, r0, #0\n"
+ " mov r9, r1\n"
+ " mov r7, #0x0\n"
+ " mov r0, #0x0\n"
+ " mov r8, r0\n"
+ " mov r2, #0x0\n"
+ " mov r5, #0x0\n"
+ "._329:\n"
+ " add r4, r5, #1\n"
+ " lsl r1, r4, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " mov r0, r9\n"
+ " str r2, [sp, #0xc]\n"
+ " bl sub_810CA9C\n"
+ " add r1, r0, #0\n"
+ " lsl r0, r5, #0x1\n"
+ " add r0, r0, sp\n"
+ " strh r1, [r0]\n"
+ " ldr r2, [sp, #0xc]\n"
+ " cmp r5, #0x5\n"
+ " beq ._328 @cond_branch\n"
+ " lsl r0, r1, #0x10\n"
+ " asr r1, r0, #0x10\n"
+ " cmp r1, #0\n"
+ " ble ._326 @cond_branch\n"
+ " add r0, r7, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ "._326:\n"
+ " cmp r1, #0\n"
+ " bge ._327 @cond_branch\n"
+ " mov r0, r8\n"
+ " add r0, r0, #0x1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r8, r0\n"
+ "._327:\n"
+ " cmp r1, #0\n"
+ " bne ._328 @cond_branch\n"
+ " add r0, r2, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ "._328:\n"
+ " lsl r0, r4, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " cmp r5, #0x5\n"
+ " bls ._329 @cond_branch\n"
+ " mov r0, sp\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r0, r1]\n"
+ " cmp r0, #0x31\n"
+ " bgt ._333 @cond_branch\n"
+ " mov r0, sp\n"
+ " ldrh r0, [r0, #0x2]\n"
+ " lsl r0, r0, #0x10\n"
+ " asr r0, r0, #0x10\n"
+ " cmp r0, #0x31\n"
+ " bgt ._333 @cond_branch\n"
+ " mov r0, sp\n"
+ " mov r4, #0x4\n"
+ " ldsh r0, [r0, r4]\n"
+ " cmp r0, #0x31\n"
+ " bgt ._333 @cond_branch\n"
+ " mov r0, sp\n"
+ " mov r1, #0x6\n"
+ " ldsh r0, [r0, r1]\n"
+ " cmp r0, #0x31\n"
+ " bgt ._333 @cond_branch\n"
+ " mov r0, sp\n"
+ " mov r4, #0x8\n"
+ " ldsh r0, [r0, r4]\n"
+ " cmp r0, #0x31\n"
+ " ble ._334 @cond_branch\n"
+ "._333:\n"
+ " ldr r1, ._336\n"
+ " add r0, r6, #0\n"
+ " bl StringCopy\n"
+ " mov r0, #0xe\n"
+ " b ._400\n"
+ "._337:\n"
+ " .align 2, 0\n"
+ "._336:\n"
+ " .word ContestStatsText_GoldPokeBlock\n"
+ "._334:\n"
+ " cmp r7, #0x4\n"
+ " bne ._338 @cond_branch\n"
+ " ldr r1, ._340\n"
+ " add r0, r6, #0\n"
+ " bl StringCopy\n"
+ " mov r0, #0xd\n"
+ " b ._400\n"
+ "._341:\n"
+ " .align 2, 0\n"
+ "._340:\n"
+ " .word ContestStatsText_WhitePokeBlock\n"
+ "._338:\n"
+ " mov r3, #0x0\n"
+ " mov r5, #0x0\n"
+ "._343:\n"
+ " lsl r0, r5, #0x1\n"
+ " add r0, r0, sp\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r0, r1]\n"
+ " cmp r0, #0x2\n"
+ " bne ._342 @cond_branch\n"
+ " add r0, r3, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r3, r0, #0x18\n"
+ "._342:\n"
+ " add r0, r5, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " cmp r5, #0x4\n"
+ " bls ._343 @cond_branch\n"
+ " cmp r3, #0x3\n"
+ " beq ._345 @cond_branch\n"
+ " cmp r2, #0x5\n"
+ " beq ._345 @cond_branch\n"
+ " mov r4, r8\n"
+ " cmp r4, #0x4\n"
+ " bne ._346 @cond_branch\n"
+ "._345:\n"
+ " ldr r1, ._348\n"
+ " add r0, r6, #0\n"
+ " bl StringCopy\n"
+ " mov r0, #0xc\n"
+ " b ._400\n"
+ "._349:\n"
+ " .align 2, 0\n"
+ "._348:\n"
+ " .word ContestStatsText_BlackPokeBlock\n"
+ "._346:\n"
+ " cmp r7, #0x3\n"
+ " bne ._350 @cond_branch\n"
+ " ldr r1, ._352\n"
+ " add r0, r6, #0\n"
+ " bl StringCopy\n"
+ " mov r0, #0xb\n"
+ " b ._400\n"
+ "._353:\n"
+ " .align 2, 0\n"
+ "._352:\n"
+ " .word ContestStatsText_GrayPokeBlock\n"
+ "._350:\n"
+ " cmp r7, #0x2\n"
+ " beq ._354 @cond_branch\n"
+ " mov r0, r8\n"
+ " cmp r0, #0x2\n"
+ " bne ._377 @cond_branch\n"
+ "._354:\n"
+ " mov r3, #0x6\n"
+ " mov r2, #0x0\n"
+ " mov r5, #0x0\n"
+ "._359:\n"
+ " lsl r0, r5, #0x1\n"
+ " add r0, r0, sp\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r0, r1]\n"
+ " cmp r0, #0\n"
+ " beq ._358 @cond_branch\n"
+ " cmp r3, #0x6\n"
+ " bne ._357 @cond_branch\n"
+ " add r3, r5, #0\n"
+ " b ._358\n"
+ "._357:\n"
+ " add r2, r5, #0\n"
+ "._358:\n"
+ " add r0, r5, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " cmp r5, #0x4\n"
+ " bls ._359 @cond_branch\n"
+ " lsl r0, r3, #0x1\n"
+ " mov r4, sp\n"
+ " add r1, r4, r0\n"
+ " lsl r0, r2, #0x1\n"
+ " add r0, r0, sp\n"
+ " mov r4, #0x0\n"
+ " ldsh r1, [r1, r4]\n"
+ " mov r4, #0x0\n"
+ " ldsh r0, [r0, r4]\n"
+ " cmp r1, r0\n"
+ " blt ._360 @cond_branch\n"
+ " add r2, r3, #0\n"
+ "._360:\n"
+ " cmp r2, #0\n"
+ " bne ._361 @cond_branch\n"
+ " ldr r1, ._363\n"
+ " add r0, r6, #0\n"
+ " bl StringCopy\n"
+ " mov r0, #0x6\n"
+ " b ._400\n"
+ "._364:\n"
+ " .align 2, 0\n"
+ "._363:\n"
+ " .word ContestStatsText_PurplePokeBlock\n"
+ "._361:\n"
+ " cmp r2, #0x1\n"
+ " bne ._365 @cond_branch\n"
+ " ldr r1, ._367\n"
+ " add r0, r6, #0\n"
+ " bl StringCopy\n"
+ " mov r0, #0x7\n"
+ " b ._400\n"
+ "._368:\n"
+ " .align 2, 0\n"
+ "._367:\n"
+ " .word ContestStatsText_IndigoPokeBlock\n"
+ "._365:\n"
+ " cmp r2, #0x2\n"
+ " bne ._369 @cond_branch\n"
+ " ldr r1, ._371\n"
+ " add r0, r6, #0\n"
+ " bl StringCopy\n"
+ " mov r0, #0x8\n"
+ " b ._400\n"
+ "._372:\n"
+ " .align 2, 0\n"
+ "._371:\n"
+ " .word ContestStatsText_BrownPokeBlock\n"
+ "._369:\n"
+ " cmp r2, #0x3\n"
+ " bne ._373 @cond_branch\n"
+ " ldr r1, ._375\n"
+ " add r0, r6, #0\n"
+ " bl StringCopy\n"
+ " mov r0, #0x9\n"
+ " b ._400\n"
+ "._376:\n"
+ " .align 2, 0\n"
+ "._375:\n"
+ " .word ContestStatsText_LiteBluePokeBlock\n"
+ "._373:\n"
+ " cmp r2, #0x4\n"
+ " bne ._377 @cond_branch\n"
+ " ldr r1, ._379\n"
+ " add r0, r6, #0\n"
+ " bl StringCopy\n"
+ " mov r0, #0xa\n"
+ " b ._400\n"
+ "._380:\n"
+ " .align 2, 0\n"
+ "._379:\n"
+ " .word ContestStatsText_OlivePokeBlock\n"
+ "._377:\n"
+ " cmp r7, #0x1\n"
+ " beq ._381 @cond_branch\n"
+ " mov r0, r8\n"
+ " cmp r0, #0x1\n"
+ " bne ._399 @cond_branch\n"
+ "._381:\n"
+ " mov r0, sp\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r0, r1]\n"
+ " cmp r0, #0\n"
+ " beq ._383 @cond_branch\n"
+ " ldr r1, ._385\n"
+ " add r0, r6, #0\n"
+ " bl StringCopy\n"
+ " mov r0, #0x1\n"
+ " b ._400\n"
+ "._386:\n"
+ " .align 2, 0\n"
+ "._385:\n"
+ " .word ContestStatsText_RedPokeBlock\n"
+ "._383:\n"
+ " mov r0, sp\n"
+ " ldrh r0, [r0, #0x2]\n"
+ " cmp r0, #0\n"
+ " beq ._387 @cond_branch\n"
+ " ldr r1, ._389\n"
+ " add r0, r6, #0\n"
+ " bl StringCopy\n"
+ " mov r0, #0x2\n"
+ " b ._400\n"
+ "._390:\n"
+ " .align 2, 0\n"
+ "._389:\n"
+ " .word ContestStatsText_BluePokeBlock\n"
+ "._387:\n"
+ " mov r0, sp\n"
+ " mov r4, #0x4\n"
+ " ldsh r0, [r0, r4]\n"
+ " cmp r0, #0\n"
+ " beq ._391 @cond_branch\n"
+ " ldr r1, ._393\n"
+ " add r0, r6, #0\n"
+ " bl StringCopy\n"
+ " mov r0, #0x3\n"
+ " b ._400\n"
+ "._394:\n"
+ " .align 2, 0\n"
+ "._393:\n"
+ " .word ContestStatsText_PinkPokeBlock\n"
+ "._391:\n"
+ " mov r0, sp\n"
+ " mov r1, #0x6\n"
+ " ldsh r0, [r0, r1]\n"
+ " cmp r0, #0\n"
+ " beq ._395 @cond_branch\n"
+ " ldr r1, ._397\n"
+ " add r0, r6, #0\n"
+ " bl StringCopy\n"
+ " mov r0, #0x4\n"
+ " b ._400\n"
+ "._398:\n"
+ " .align 2, 0\n"
+ "._397:\n"
+ " .word ContestStatsText_GreenPokeBlock\n"
+ "._395:\n"
+ " mov r0, sp\n"
+ " mov r4, #0x8\n"
+ " ldsh r0, [r0, r4]\n"
+ " cmp r0, #0\n"
+ " beq ._399 @cond_branch\n"
+ " ldr r1, ._401\n"
+ " add r0, r6, #0\n"
+ " bl StringCopy\n"
+ " mov r0, #0x5\n"
+ " b ._400\n"
+ "._402:\n"
+ " .align 2, 0\n"
+ "._401:\n"
+ " .word ContestStatsText_YellowPokeBlock\n"
+ "._399:\n"
+ " ldr r1, ._403\n"
+ " add r0, r6, #0\n"
+ " bl StringCopy\n"
+ " mov r0, #0x0\n"
+ "._400:\n"
+ " add sp, sp, #0x10\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"
+ "._404:\n"
+ " .align 2, 0\n"
+ "._403:\n"
+ " .word gOtherText_FiveQuestions\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_816097C()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " add r7, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r5, r1, #0x10\n"
+ " mov r6, #0x0\n"
+ " mov r1, #0x0\n"
+ "._405:\n"
+ " add r0, r7, r6\n"
+ " strb r1, [r0]\n"
+ " add r0, r6, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " cmp r6, #0x3\n"
+ " bls ._405 @cond_branch\n"
+ " mov r0, #0xff\n"
+ " strb r0, [r7, #0x4]\n"
+ " lsl r0, r5, #0x10\n"
+ " asr r0, r0, #0x10\n"
+ " cmp r0, #0\n"
+ " bne ._406 @cond_branch\n"
+ " mov r0, #0xa1\n"
+ " strb r0, [r7, #0x3]\n"
+ " b ._414\n"
+ "._406:\n"
+ " cmp r0, #0\n"
+ " ble ._408 @cond_branch\n"
+ " mov r4, #0x64\n"
+ " mov r0, #0x0\n"
+ " mov r8, r0\n"
+ " mov r6, #0x0\n"
+ "._412:\n"
+ " lsl r5, r5, #0x10\n"
+ " asr r0, r5, #0x10\n"
+ " lsl r4, r4, #0x10\n"
+ " asr r1, r4, #0x10\n"
+ " bl __divsi3\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r2, r0, #0x10\n"
+ " mov r1, r8\n"
+ " cmp r1, #0\n"
+ " bne ._410 @cond_branch\n"
+ " cmp r6, #0x2\n"
+ " beq ._410 @cond_branch\n"
+ " cmp r2, #0\n"
+ " beq ._411 @cond_branch\n"
+ "._410:\n"
+ " add r1, r6, r7\n"
+ " add r0, r2, #0\n"
+ " sub r0, r0, #0x5f\n"
+ " strb r0, [r1, #0x1]\n"
+ " mov r0, #0x1\n"
+ " mov r8, r0\n"
+ "._411:\n"
+ " asr r0, r5, #0x10\n"
+ " asr r4, r4, #0x10\n"
+ " add r1, r4, #0\n"
+ " bl __modsi3\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r5, r0, #0x10\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0xa\n"
+ " bl __divsi3\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r4, r0, #0x10\n"
+ " add r0, r6, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " cmp r6, #0x2\n"
+ " bls ._412 @cond_branch\n"
+ " b ._414\n"
+ "._408:\n"
+ " cmp r0, #0\n"
+ " bge ._414 @cond_branch\n"
+ " neg r0, r0\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r5, r0, #0x10\n"
+ " mov r4, #0x64\n"
+ " mov r1, #0x0\n"
+ " mov r8, r1\n"
+ " mov r6, #0x0\n"
+ "._419:\n"
+ " lsl r5, r5, #0x10\n"
+ " asr r0, r5, #0x10\n"
+ " lsl r4, r4, #0x10\n"
+ " asr r1, r4, #0x10\n"
+ " bl __divsi3\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r2, r0, #0x10\n"
+ " mov r1, r8\n"
+ " lsl r0, r1, #0x10\n"
+ " add r3, r0, #0\n"
+ " cmp r3, #0\n"
+ " bne ._416 @cond_branch\n"
+ " cmp r6, #0x2\n"
+ " beq ._416 @cond_branch\n"
+ " cmp r2, #0\n"
+ " beq ._417 @cond_branch\n"
+ "._416:\n"
+ " add r1, r6, r7\n"
+ " add r0, r2, #0\n"
+ " sub r0, r0, #0x5f\n"
+ " strb r0, [r1, #0x1]\n"
+ " cmp r3, #0\n"
+ " bne ._418 @cond_branch\n"
+ " mov r0, #0xae\n"
+ " strb r0, [r1]\n"
+ "._418:\n"
+ " mov r0, #0x1\n"
+ " mov r8, r0\n"
+ "._417:\n"
+ " asr r0, r5, #0x10\n"
+ " asr r4, r4, #0x10\n"
+ " add r1, r4, #0\n"
+ " bl __modsi3\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r5, r0, #0x10\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0xa\n"
+ " bl __divsi3\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r4, r0, #0x10\n"
+ " add r0, r6, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " cmp r6, #0x2\n"
+ " bls ._419 @cond_branch\n"
+ "._414:\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_sub_8160A80()
+{
+ asm(
+ " push {r4, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " add r2, r0, #0\n"
+ " ldr r1, ._422\n"
+ " cmp r0, #0\n"
+ " bne ._420 @cond_branch\n"
+ " ldr r4, ._422 + 4\n"
+ " ldrb r1, [r1, #0x1]\n"
+ " add r0, r4, #0\n"
+ " bl debug_sub_816097C\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x8\n"
+ " mov r2, #0x3\n"
+ " bl MenuPrint\n"
+ " b ._440\n"
+ "._423:\n"
+ " .align 2, 0\n"
+ "._422:\n"
+ " .word _nakamuraStatic+0x18\n"
+ " .word gStringVar1\n"
+ "._420:\n"
+ " cmp r0, #0x1\n"
+ " bne ._424 @cond_branch\n"
+ " ldr r4, ._426\n"
+ " ldrb r1, [r1, #0x2]\n"
+ " add r0, r4, #0\n"
+ " bl debug_sub_816097C\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x8\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " b ._440\n"
+ "._427:\n"
+ " .align 2, 0\n"
+ "._426:\n"
+ " .word gStringVar1\n"
+ "._424:\n"
+ " cmp r0, #0x2\n"
+ " bne ._428 @cond_branch\n"
+ " ldr r4, ._430\n"
+ " ldrb r1, [r1, #0x3]\n"
+ " add r0, r4, #0\n"
+ " bl debug_sub_816097C\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x8\n"
+ " mov r2, #0x7\n"
+ " bl MenuPrint\n"
+ " b ._440\n"
+ "._431:\n"
+ " .align 2, 0\n"
+ "._430:\n"
+ " .word gStringVar1\n"
+ "._428:\n"
+ " cmp r0, #0x3\n"
+ " bne ._432 @cond_branch\n"
+ " ldr r4, ._434\n"
+ " ldrb r1, [r1, #0x4]\n"
+ " add r0, r4, #0\n"
+ " bl debug_sub_816097C\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x8\n"
+ " mov r2, #0x9\n"
+ " bl MenuPrint\n"
+ " b ._440\n"
+ "._435:\n"
+ " .align 2, 0\n"
+ "._434:\n"
+ " .word gStringVar1\n"
+ "._432:\n"
+ " cmp r0, #0x4\n"
+ " bne ._436 @cond_branch\n"
+ " ldr r4, ._438\n"
+ " ldrb r1, [r1, #0x5]\n"
+ " add r0, r4, #0\n"
+ " bl debug_sub_816097C\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x8\n"
+ " mov r2, #0xb\n"
+ " bl MenuPrint\n"
+ " b ._440\n"
+ "._439:\n"
+ " .align 2, 0\n"
+ "._438:\n"
+ " .word gStringVar1\n"
+ "._436:\n"
+ " cmp r2, #0x5\n"
+ " bne ._440 @cond_branch\n"
+ " ldr r4, ._441\n"
+ " ldrb r1, [r1, #0x6]\n"
+ " add r0, r4, #0\n"
+ " bl debug_sub_816097C\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x8\n"
+ " mov r2, #0xd\n"
+ " bl MenuPrint\n"
+ "._440:\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._442:\n"
+ " .align 2, 0\n"
+ "._441:\n"
+ " .word gStringVar1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8160B50()
+{
+ asm(
+ " push {r4, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " add r3, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " add r4, r1, #0\n"
+ " ldr r2, ._445\n"
+ " cmp r0, #0\n"
+ " bne ._443 @cond_branch\n"
+ " ldrb r0, [r2, #0x1]\n"
+ " add r0, r0, r1\n"
+ " strb r0, [r2, #0x1]\n"
+ " b ._455\n"
+ "._446:\n"
+ " .align 2, 0\n"
+ "._445:\n"
+ " .word _nakamuraStatic+0x18\n"
+ "._443:\n"
+ " cmp r0, #0x1\n"
+ " bne ._447 @cond_branch\n"
+ " ldrb r0, [r2, #0x2]\n"
+ " add r0, r0, r1\n"
+ " strb r0, [r2, #0x2]\n"
+ " b ._455\n"
+ "._447:\n"
+ " cmp r0, #0x2\n"
+ " bne ._449 @cond_branch\n"
+ " ldrb r0, [r2, #0x3]\n"
+ " add r0, r0, r1\n"
+ " strb r0, [r2, #0x3]\n"
+ " b ._455\n"
+ "._449:\n"
+ " cmp r0, #0x3\n"
+ " bne ._451 @cond_branch\n"
+ " ldrb r0, [r2, #0x4]\n"
+ " add r0, r0, r1\n"
+ " strb r0, [r2, #0x4]\n"
+ " b ._455\n"
+ "._451:\n"
+ " cmp r0, #0x4\n"
+ " bne ._453 @cond_branch\n"
+ " ldrb r0, [r2, #0x5]\n"
+ " add r0, r0, r1\n"
+ " strb r0, [r2, #0x5]\n"
+ " b ._455\n"
+ "._453:\n"
+ " cmp r3, #0x5\n"
+ " bne ._455 @cond_branch\n"
+ " ldrb r0, [r2, #0x6]\n"
+ " add r0, r0, r4\n"
+ " strb r0, [r2, #0x6]\n"
+ "._455:\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8160BB0()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " ldr r5, ._456\n"
+ " ldr r4, ._456 + 4\n"
+ " add r0, r5, #0\n"
+ " add r1, r4, #0\n"
+ " bl debug_sub_8160714\n"
+ " strb r0, [r4]\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x8\n"
+ " mov r3, #0x2\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._457:\n"
+ " .align 2, 0\n"
+ "._456:\n"
+ " .word gStringVar1\n"
+ " .word _nakamuraStatic+0x18\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8160BE4()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xc\n"
+ " mov r3, #0xf\n"
+ " bl MenuDrawTextWindow\n"
+ " bl debug_sub_8160BB0\n"
+ " ldr r0, ._459\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x3\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._459 + 4\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._459 + 8\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x7\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._459 + 12\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x9\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._459 + 16\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xb\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._459 + 20\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xd\n"
+ " bl MenuPrint\n"
+ " mov r4, #0x0\n"
+ "._458:\n"
+ " add r0, r4, #0\n"
+ " bl debug_sub_8160A80\n"
+ " add r0, r4, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " cmp r4, #0x5\n"
+ " bls ._458 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " mov r0, #0xb\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x3\n"
+ " mov r3, #0x6\n"
+ " bl InitMenu\n"
+ " add sp, sp, #0x8\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._460:\n"
+ " .align 2, 0\n"
+ "._459:\n"
+ " .word gContestStatsText_Spicy\n"
+ " .word gContestStatsText_Dry\n"
+ " .word gContestStatsText_Sweet\n"
+ " .word gContestStatsText_Bitter\n"
+ " .word gContestStatsText_Sour\n"
+ " .word gContestStatsText_Tasty\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8160C7C()
+{
+ asm(
+ " push {r4, lr}\n"
+ " ldr r2, ._469\n"
+ " mov r1, #0x0\n"
+ " ldrb r0, [r2]\n"
+ " cmp r0, #0xc\n"
+ " bne ._467 @cond_branch\n"
+ " ldrb r0, [r2, #0x1]\n"
+ " cmp r0, #0x2\n"
+ " bne ._462 @cond_branch\n"
+ " mov r1, #0x1\n"
+ "._462:\n"
+ " ldrb r0, [r2, #0x3]\n"
+ " cmp r0, #0x2\n"
+ " bne ._463 @cond_branch\n"
+ " add r0, r1, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r1, r0, #0x18\n"
+ "._463:\n"
+ " ldrb r0, [r2, #0x4]\n"
+ " cmp r0, #0x2\n"
+ " bne ._464 @cond_branch\n"
+ " add r0, r1, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r1, r0, #0x18\n"
+ "._464:\n"
+ " ldrb r0, [r2, #0x2]\n"
+ " cmp r0, #0x2\n"
+ " bne ._465 @cond_branch\n"
+ " add r0, r1, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r1, r0, #0x18\n"
+ "._465:\n"
+ " ldrb r0, [r2, #0x5]\n"
+ " cmp r0, #0x2\n"
+ " bne ._466 @cond_branch\n"
+ " add r0, r1, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r1, r0, #0x18\n"
+ "._466:\n"
+ " cmp r1, #0x3\n"
+ " beq ._467 @cond_branch\n"
+ " mov r0, #0x2\n"
+ " strb r0, [r2, #0x1]\n"
+ " strb r0, [r2, #0x3]\n"
+ " strb r0, [r2, #0x4]\n"
+ "._467:\n"
+ " add r0, r2, #0\n"
+ " bl sub_810CA34\n"
+ " bl debug_sub_8160BB0\n"
+ " mov r4, #0x0\n"
+ "._468:\n"
+ " add r0, r4, #0\n"
+ " bl debug_sub_8160A80\n"
+ " add r0, r4, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " cmp r4, #0x5\n"
+ " bls ._468 @cond_branch\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._470:\n"
+ " .align 2, 0\n"
+ "._469:\n"
+ " .word _nakamuraStatic+0x18\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8160CF4()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r2, ._473\n"
+ " ldrh r1, [r2, #0x30]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._471 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " b ._472\n"
+ "._474:\n"
+ " .align 2, 0\n"
+ "._473:\n"
+ " .word gMain\n"
+ "._471:\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._475 @cond_branch\n"
+ " mov r0, #0x1\n"
+ "._472:\n"
+ " bl MoveMenuCursor\n"
+ " mov r0, #0x0\n"
+ " b ._484\n"
+ "._475:\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._477 @cond_branch\n"
+ " bl GetMenuCursorPos\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r1, #0x1\n"
+ " neg r1, r1\n"
+ " b ._478\n"
+ "._477:\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._479 @cond_branch\n"
+ " bl GetMenuCursorPos\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r1, #0x1\n"
+ "._478:\n"
+ " bl debug_sub_8160B50\n"
+ " bl GetMenuCursorPos\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_8160A80\n"
+ " bl debug_sub_8160BB0\n"
+ " mov r0, #0x0\n"
+ " b ._484\n"
+ "._479:\n"
+ " ldrh r1, [r2, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._481 @cond_branch\n"
+ " bl debug_sub_8160C7C\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " mov r0, #0x0\n"
+ " b ._484\n"
+ "._481:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._483 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._484\n"
+ "._483:\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuZeroFillWindowRect\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ "._484:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 debug_sub_8160D98()
+{
+ asm(
+ " push {lr}\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuZeroFillWindowRect\n"
+ " bl debug_sub_8160BE4\n"
+ " ldr r1, ._485\n"
+ " ldr r0, ._485 + 4\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._486:\n"
+ " .align 2, 0\n"
+ "._485:\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_8160CF4+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8160DC0()
+{
+ asm(
+ " push {lr}\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x16\n"
+ " mov r3, #0x13\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r0, ._487\n"
+ " mov r1, #0xb\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._487 + 4\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x3\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._487 + 8\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._487 + 12\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x7\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._487 + 16\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x9\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._487 + 20\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xb\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._487 + 24\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xd\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._487 + 28\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xf\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._487 + 32\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x11\n"
+ " bl MenuPrint\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._488:\n"
+ " .align 2, 0\n"
+ "._487:\n"
+ " .word gOtherText_Slash\n"
+ " .word Str_843E5F2\n"
+ " .word Str_843E5FB\n"
+ " .word Str_843E606\n"
+ " .word Str_843E611\n"
+ " .word Str_843E61C\n"
+ " .word Str_843E627\n"
+ " .word Str_843E637\n"
+ " .word Str_843E632\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8160E50()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add r6, r0, #0\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xa\n"
+ " mov r3, #0x2\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " ldr r5, ._489\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x2\n"
+ " add r2, r5, #0\n"
+ " bl GetMonData\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " mov r0, #0xc\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x15\n"
+ " mov r3, #0x2\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0xb\n"
+ " bl GetMonData\n"
+ " mov r1, #0xb\n"
+ " mul r0, r0, r1\n"
+ " ldr r1, ._489 + 4\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0xc\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x1a\n"
+ " bl GetMonData\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x10\n"
+ " lsr r4, r4, #0x10\n"
+ " add r0, r5, #0\n"
+ " add r1, r4, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, #0xd\n"
+ " mov r1, #0x3\n"
+ " mov r2, #0x11\n"
+ " mov r3, #0x4\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0xd\n"
+ " mov r2, #0x3\n"
+ " bl MenuPrint\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x1b\n"
+ " bl GetMonData\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " add r4, r4, r1\n"
+ " lsl r4, r4, #0x10\n"
+ " lsr r4, r4, #0x10\n"
+ " add r0, r5, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, #0xd\n"
+ " mov r1, #0x5\n"
+ " mov r2, #0x11\n"
+ " mov r3, #0x6\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0xd\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x1c\n"
+ " bl GetMonData\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " add r4, r4, r1\n"
+ " lsl r4, r4, #0x10\n"
+ " lsr r4, r4, #0x10\n"
+ " add r0, r5, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, #0xd\n"
+ " mov r1, #0x7\n"
+ " mov r2, #0x11\n"
+ " mov r3, #0x8\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0xd\n"
+ " mov r2, #0x7\n"
+ " bl MenuPrint\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x1d\n"
+ " bl GetMonData\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " add r4, r4, r1\n"
+ " lsl r4, r4, #0x10\n"
+ " lsr r4, r4, #0x10\n"
+ " add r0, r5, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, #0xd\n"
+ " mov r1, #0x9\n"
+ " mov r2, #0x11\n"
+ " mov r3, #0xa\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0xd\n"
+ " mov r2, #0x9\n"
+ " bl MenuPrint\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x1e\n"
+ " bl GetMonData\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " add r4, r4, r1\n"
+ " lsl r4, r4, #0x10\n"
+ " lsr r4, r4, #0x10\n"
+ " add r0, r5, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, #0xd\n"
+ " mov r1, #0xb\n"
+ " mov r2, #0x11\n"
+ " mov r3, #0xc\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0xd\n"
+ " mov r2, #0xb\n"
+ " bl MenuPrint\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x1f\n"
+ " bl GetMonData\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " add r4, r4, r1\n"
+ " lsl r4, r4, #0x10\n"
+ " lsr r4, r4, #0x10\n"
+ " add r0, r5, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, #0xd\n"
+ " mov r1, #0xd\n"
+ " mov r2, #0x11\n"
+ " mov r3, #0xe\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0xd\n"
+ " mov r2, #0xd\n"
+ " bl MenuPrint\n"
+ " add r0, r5, #0\n"
+ " add r1, r4, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, #0xd\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x11\n"
+ " mov r3, #0x10\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0xd\n"
+ " mov r2, #0xf\n"
+ " bl MenuPrint\n"
+ " add r0, r6, #0\n"
+ " mov r1, #0x20\n"
+ " bl GetMonData\n"
+ " add r1, r0, #0\n"
+ " add r0, r5, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, #0xd\n"
+ " mov r1, #0x11\n"
+ " mov r2, #0x11\n"
+ " mov r3, #0x12\n"
+ " bl MenuFillWindowRectWithBlankTile\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0xd\n"
+ " mov r2, #0x11\n"
+ " bl MenuPrint\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._490:\n"
+ " .align 2, 0\n"
+ "._489:\n"
+ " .word gStringVar1\n"
+ " .word gSpeciesNames\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8161028()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " asr r1, r0, #0x18\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " cmp r1, r0\n"
+ " bne ._491 @cond_branch\n"
+ " ldr r0, ._496\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " bne ._492 @cond_branch\n"
+ " mov r5, #0x5\n"
+ "._494:\n"
+ " lsl r0, r5, #0x10\n"
+ " asr r4, r0, #0x10\n"
+ " mov r0, #0x64\n"
+ " mul r0, r0, r4\n"
+ " ldr r1, ._496 + 4\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0xb\n"
+ " bl GetMonData\n"
+ " cmp r0, #0\n"
+ " bne ._493 @cond_branch\n"
+ " sub r0, r4, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r5, r0, #0x10\n"
+ " cmp r0, #0\n"
+ " bge ._494 @cond_branch\n"
+ "._492:\n"
+ " ldr r1, ._496\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, r6\n"
+ " strb r0, [r1]\n"
+ " b ._506\n"
+ "._497:\n"
+ " .align 2, 0\n"
+ "._496:\n"
+ " .word _nakamuraData+0x5\n"
+ " .word gPlayerParty\n"
+ "._491:\n"
+ " cmp r1, #0x1\n"
+ " bne ._506 @cond_branch\n"
+ " ldr r4, ._501\n"
+ " ldrb r0, [r4]\n"
+ " add r0, r0, r6\n"
+ " strb r0, [r4]\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x6\n"
+ " bne ._499 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._500\n"
+ "._502:\n"
+ " .align 2, 0\n"
+ "._501:\n"
+ " .word _nakamuraData+0x5\n"
+ "._493:\n"
+ " ldr r0, ._504\n"
+ " strb r5, [r0]\n"
+ " b ._506\n"
+ "._505:\n"
+ " .align 2, 0\n"
+ "._504:\n"
+ " .word _nakamuraData+0x5\n"
+ "._499:\n"
+ " ldrb r1, [r4]\n"
+ " mov r0, #0x64\n"
+ " mul r0, r0, r1\n"
+ " ldr r1, ._507\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0xb\n"
+ " bl GetMonData\n"
+ " cmp r0, #0\n"
+ " bne ._506 @cond_branch\n"
+ "._500:\n"
+ " strb r0, [r4]\n"
+ "._506:\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._508:\n"
+ " .align 2, 0\n"
+ "._507:\n"
+ " .word gPlayerParty\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_81610BC()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._511\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._509 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " b ._510\n"
+ "._512:\n"
+ " .align 2, 0\n"
+ "._511:\n"
+ " .word gMain\n"
+ "._509:\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._513 @cond_branch\n"
+ " mov r0, #0x1\n"
+ "._510:\n"
+ " bl debug_sub_8161028\n"
+ " ldr r0, ._515\n"
+ " ldrb r1, [r0]\n"
+ " mov r0, #0x64\n"
+ " mul r0, r0, r1\n"
+ " ldr r1, ._515 + 4\n"
+ " add r0, r0, r1\n"
+ " bl debug_sub_8160E50\n"
+ " mov r0, #0x0\n"
+ " b ._518\n"
+ "._516:\n"
+ " .align 2, 0\n"
+ "._515:\n"
+ " .word _nakamuraData+0x5\n"
+ " .word gPlayerParty\n"
+ "._513:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._517 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._518\n"
+ "._517:\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuZeroFillWindowRect\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ "._518:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_EffortValues()
+{
+ asm(
+ " push {lr}\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuZeroFillWindowRect\n"
+ " ldr r1, ._519\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ " bl debug_sub_8160DC0\n"
+ " ldr r0, ._519 + 4\n"
+ " bl debug_sub_8160E50\n"
+ " ldr r1, ._519 + 8\n"
+ " ldr r0, ._519 + 12\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._520:\n"
+ " .align 2, 0\n"
+ "._519:\n"
+ " .word _nakamuraData+0x5\n"
+ " .word gPlayerParty\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_81610BC+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8161160()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " mov r7, #0x0\n"
+ " ldr r2, ._523\n"
+ " ldr r1, ._523 + 4\n"
+ " ldrh r0, [r2]\n"
+ " ldrh r3, [r1]\n"
+ " cmp r0, r3\n"
+ " bhi ._521 @cond_branch\n"
+ " add r6, r0, #0\n"
+ " ldrh r5, [r1]\n"
+ " b ._522\n"
+ "._524:\n"
+ " .align 2, 0\n"
+ "._523:\n"
+ " .word _nakamuraData+0x6\n"
+ " .word _nakamuraData+0x8\n"
+ "._521:\n"
+ " ldrh r6, [r1]\n"
+ " ldrh r5, [r2]\n"
+ "._522:\n"
+ " mov r4, #0x0\n"
+ " ldr r0, ._529\n"
+ " ldrh r0, [r0]\n"
+ " cmp r4, r0\n"
+ " bcs ._525 @cond_branch\n"
+ " ldr r0, ._529 + 4\n"
+ " mov r8, r0\n"
+ "._528:\n"
+ " bl Random\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " mov r2, r8\n"
+ " ldrh r1, [r2]\n"
+ " bl __umodsi3\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " cmp r0, r6\n"
+ " bcc ._527 @cond_branch\n"
+ " cmp r0, r5\n"
+ " bhi ._527 @cond_branch\n"
+ " add r0, r7, #1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r7, r0, #0x10\n"
+ "._527:\n"
+ " add r4, r4, #0x1\n"
+ " ldr r0, ._529\n"
+ " ldrh r0, [r0]\n"
+ " cmp r4, r0\n"
+ " bcc ._528 @cond_branch\n"
+ "._525:\n"
+ " add r0, r7, #0\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._530:\n"
+ " .align 2, 0\n"
+ "._529:\n"
+ " .word _nakamuraData+0xa\n"
+ " .word _nakamuraData+0xc\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_81611D8()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xf\n"
+ " mov r3, #0xb\n"
+ " bl MenuDrawTextWindow\n"
+ " ldr r0, ._531\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._531 + 4\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x3\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._531 + 8\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._531 + 12\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x7\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._531 + 16\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x9\n"
+ " bl MenuPrint\n"
+ " ldr r0, ._531 + 20\n"
+ " mov r1, #0xd\n"
+ " mov r2, #0x9\n"
+ " bl MenuPrint\n"
+ " ldr r4, ._531 + 24\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0xc\n"
+ " mov r2, #0x1\n"
+ " bl MenuPrint\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0xc\n"
+ " mov r2, #0x3\n"
+ " bl MenuPrint\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0xc\n"
+ " mov r2, #0x5\n"
+ " bl MenuPrint\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0xc\n"
+ " mov r2, #0x7\n"
+ " bl MenuPrint\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0xc\n"
+ " mov r2, #0x9\n"
+ " bl MenuPrint\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " mov r0, #0xe\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x4\n"
+ " bl InitMenu\n"
+ " add sp, sp, #0x8\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._532:\n"
+ " .align 2, 0\n"
+ "._531:\n"
+ " .word Str_843E642\n"
+ " .word Str_843E647\n"
+ " .word Str_843E65A\n"
+ " .word Str_843E64C\n"
+ " .word Str_843E651\n"
+ " .word Str_843E655\n"
+ " .word Str_843E658\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8161290()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " ldr r4, ._533\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x8\n"
+ " mov r2, #0x9\n"
+ " bl MenuPrint\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._534:\n"
+ " .align 2, 0\n"
+ "._533:\n"
+ " .word gStringVar1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_81612B8()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add r4, r2, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " lsl r1, r1, #0x18\n"
+ " asr r1, r1, #0x18\n"
+ " ldrh r2, [r0]\n"
+ " add r1, r1, r2\n"
+ " strh r1, [r0]\n"
+ " ldr r5, ._535\n"
+ " ldrh r1, [r0]\n"
+ " add r0, r5, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x5\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x8\n"
+ " add r2, r4, #0\n"
+ " bl MenuPrint\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._536:\n"
+ " .align 2, 0\n"
+ "._535:\n"
+ " .word gStringVar1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_81612EC()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " ldr r2, ._540\n"
+ " ldrh r1, [r2, #0x2c]\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " mov r5, #0x1\n"
+ " cmp r0, #0\n"
+ " beq ._537 @cond_branch\n"
+ " mov r5, #0x64\n"
+ "._537:\n"
+ " ldrh r1, [r2, #0x30]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._538 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " b ._539\n"
+ "._541:\n"
+ " .align 2, 0\n"
+ "._540:\n"
+ " .word gMain\n"
+ "._538:\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._542 @cond_branch\n"
+ " mov r0, #0x1\n"
+ "._539:\n"
+ " bl MoveMenuCursor\n"
+ "._565:\n"
+ " mov r0, #0x0\n"
+ " b ._543\n"
+ "._542:\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._544 @cond_branch\n"
+ " bl GetMenuCursorPos\n"
+ " lsl r0, r0, #0x18\n"
+ " asr r4, r0, #0x18\n"
+ " cmp r4, #0\n"
+ " bne ._545 @cond_branch\n"
+ " ldr r0, ._550\n"
+ " neg r1, r5\n"
+ " mov r2, #0x1\n"
+ " bl debug_sub_81612B8\n"
+ "._545:\n"
+ " cmp r4, #0x1\n"
+ " bne ._546 @cond_branch\n"
+ " ldr r0, ._550 + 4\n"
+ " neg r1, r5\n"
+ " mov r2, #0x3\n"
+ " bl debug_sub_81612B8\n"
+ "._546:\n"
+ " cmp r4, #0x2\n"
+ " bne ._547 @cond_branch\n"
+ " ldr r0, ._550 + 8\n"
+ " neg r1, r5\n"
+ " mov r2, #0x5\n"
+ " bl debug_sub_81612B8\n"
+ "._547:\n"
+ " cmp r4, #0x3\n"
+ " bne ._565 @cond_branch\n"
+ " ldr r0, ._550 + 12\n"
+ " neg r1, r5\n"
+ " mov r2, #0x7\n"
+ " bl debug_sub_81612B8\n"
+ " b ._565\n"
+ "._551:\n"
+ " .align 2, 0\n"
+ "._550:\n"
+ " .word _nakamuraData+0x6\n"
+ " .word _nakamuraData+0x8\n"
+ " .word _nakamuraData+0xc\n"
+ " .word _nakamuraData+0xa\n"
+ "._544:\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._552 @cond_branch\n"
+ " bl GetMenuCursorPos\n"
+ " lsl r0, r0, #0x18\n"
+ " asr r4, r0, #0x18\n"
+ " cmp r4, #0\n"
+ " bne ._553 @cond_branch\n"
+ " ldr r0, ._558\n"
+ " add r1, r5, #0\n"
+ " mov r2, #0x1\n"
+ " bl debug_sub_81612B8\n"
+ "._553:\n"
+ " cmp r4, #0x1\n"
+ " bne ._554 @cond_branch\n"
+ " ldr r0, ._558 + 4\n"
+ " add r1, r5, #0\n"
+ " mov r2, #0x3\n"
+ " bl debug_sub_81612B8\n"
+ "._554:\n"
+ " cmp r4, #0x2\n"
+ " bne ._555 @cond_branch\n"
+ " ldr r0, ._558 + 8\n"
+ " add r1, r5, #0\n"
+ " mov r2, #0x5\n"
+ " bl debug_sub_81612B8\n"
+ "._555:\n"
+ " cmp r4, #0x3\n"
+ " bne ._565 @cond_branch\n"
+ " ldr r0, ._558 + 12\n"
+ " add r1, r5, #0\n"
+ " mov r2, #0x7\n"
+ " bl debug_sub_81612B8\n"
+ " b ._565\n"
+ "._559:\n"
+ " .align 2, 0\n"
+ "._558:\n"
+ " .word _nakamuraData+0x6\n"
+ " .word _nakamuraData+0x8\n"
+ " .word _nakamuraData+0xc\n"
+ " .word _nakamuraData+0xa\n"
+ "._552:\n"
+ " ldrh r1, [r2, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._560 @cond_branch\n"
+ " ldr r0, ._563\n"
+ " ldrh r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._565 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " bl debug_sub_8161160\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " bl debug_sub_8161290\n"
+ " b ._565\n"
+ "._564:\n"
+ " .align 2, 0\n"
+ "._563:\n"
+ " .word _nakamuraData+0xc\n"
+ "._560:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._565 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuZeroFillWindowRect\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ "._543:\n"
+ " pop {r4, r5}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_RandomNumberTest()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._566\n"
+ " mov r1, #0x0\n"
+ " strh r1, [r0]\n"
+ " ldr r0, ._566 + 4\n"
+ " strh r1, [r0]\n"
+ " ldr r0, ._566 + 8\n"
+ " strh r1, [r0]\n"
+ " ldr r0, ._566 + 12\n"
+ " strh r1, [r0]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl MenuZeroFillWindowRect\n"
+ " bl debug_sub_81611D8\n"
+ " ldr r1, ._566 + 16\n"
+ " ldr r0, ._566 + 20\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._567:\n"
+ " .align 2, 0\n"
+ "._566:\n"
+ " .word _nakamuraData+0x6\n"
+ " .word _nakamuraData+0x8\n"
+ " .word _nakamuraData+0xc\n"
+ " .word _nakamuraData+0xa\n"
+ " .word gCallback_03004AE8\n"
+ " .word debug_sub_81612EC+1\n"
+ "\n"
+ );
+}
+
+#endif // DEBUG