summaryrefslogtreecommitdiff
path: root/src/battle/battle_2.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle/battle_2.c')
-rw-r--r--src/battle/battle_2.c7964
1 files changed, 7964 insertions, 0 deletions
diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c
index 990535b4e..5212f5bdc 100644
--- a/src/battle/battle_2.c
+++ b/src/battle/battle_2.c
@@ -203,6 +203,231 @@ void sub_800E7C4(void)
}
}
+#if DEBUG
+__attribute__((naked))
+void InitBattle(void)
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " mov r0, #0x0\n"
+ " bl SetHBlankCallback\n"
+ " mov r0, #0x0\n"
+ " bl SetVBlankCallback\n"
+ " mov r4, #0x0\n"
+ " str r4, [sp]\n"
+ " mov r1, #0xc0\n"
+ " lsl r1, r1, #0x13\n"
+ " ldr r2, ._10\n"
+ " mov r0, sp\n"
+ " bl gScriptFuncs_End+0x3cb4\n"
+ " ldr r0, ._10 + 4\n"
+ " strh r4, [r0]\n"
+ " sub r0, r0, #0xc\n"
+ " mov r2, #0xf0\n"
+ " strh r2, [r0]\n"
+ " add r0, r0, #0x4\n"
+ " ldr r3, ._10 + 8\n"
+ " add r1, r3, #0\n"
+ " strh r1, [r0]\n"
+ " add r0, r0, #0x4\n"
+ " strh r4, [r0]\n"
+ " add r0, r0, #0x2\n"
+ " strh r4, [r0]\n"
+ " ldr r0, ._10 + 12\n"
+ " strh r2, [r0]\n"
+ " ldr r0, ._10 + 16\n"
+ " strh r1, [r0]\n"
+ " bl dp12_8087EA4\n"
+ " ldr r0, ._10 + 20\n"
+ " mov r3, #0xf0\n"
+ " mov r5, #0xf0\n"
+ " lsl r5, r5, #0x3\n"
+ " add r2, r0, r5\n"
+ " mov r1, #0x4f\n"
+ "._5:\n"
+ " strh r3, [r0]\n"
+ " strh r3, [r2]\n"
+ " add r2, r2, #0x2\n"
+ " add r0, r0, #0x2\n"
+ " sub r1, r1, #0x1\n"
+ " cmp r1, #0\n"
+ " bge ._5 @cond_branch\n"
+ " mov r1, #0x50\n"
+ " ldr r4, ._10 + 24\n"
+ " ldr r0, ._10 + 20\n"
+ " ldr r3, ._10 + 28\n"
+ " mov r5, #0x82\n"
+ " lsl r5, r5, #0x4\n"
+ " add r2, r0, r5\n"
+ " add r0, r0, #0xa0\n"
+ "._6:\n"
+ " strh r3, [r0]\n"
+ " strh r3, [r2]\n"
+ " add r2, r2, #0x2\n"
+ " add r0, r0, #0x2\n"
+ " add r1, r1, #0x1\n"
+ " cmp r1, #0x9f\n"
+ " ble ._6 @cond_branch\n"
+ " ldr r0, [r4]\n"
+ " ldr r1, [r4, #0x4]\n"
+ " ldr r2, [r4, #0x8]\n"
+ " bl sub_80895F8\n"
+ " ldr r4, ._10 + 32\n"
+ " add r0, r4, #0\n"
+ " bl SetUpWindowConfig\n"
+ " bl ResetPaletteFade\n"
+ " ldr r0, ._10 + 36\n"
+ " mov r1, #0x0\n"
+ " strh r1, [r0]\n"
+ " ldr r0, ._10 + 40\n"
+ " strh r1, [r0]\n"
+ " ldr r0, ._10 + 44\n"
+ " strh r1, [r0]\n"
+ " ldr r0, ._10 + 48\n"
+ " strh r1, [r0]\n"
+ " ldr r0, ._10 + 52\n"
+ " strh r1, [r0]\n"
+ " ldr r0, ._10 + 56\n"
+ " strh r1, [r0]\n"
+ " ldr r0, ._10 + 60\n"
+ " strh r1, [r0]\n"
+ " ldr r0, ._10 + 64\n"
+ " strh r1, [r0]\n"
+ " ldr r0, ._10 + 68\n"
+ " ldrb r1, [r0]\n"
+ " mov r0, #0x8\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._7 @cond_branch\n"
+ " bl GetBattleTerrain\n"
+ " ldr r1, ._10 + 72\n"
+ " strb r0, [r1]\n"
+ "._7:\n"
+ " ldr r0, ._10 + 76\n"
+ " add r1, r4, #0\n"
+ " bl InitWindowFromConfig\n"
+ " ldr r0, ._10 + 80\n"
+ " ldr r1, ._10 + 84\n"
+ " bl InitWindowFromConfig\n"
+ " ldr r0, ._10 + 88\n"
+ " ldr r1, ._10 + 92\n"
+ " bl InitWindowFromConfig\n"
+ " bl sub_800D6D4\n"
+ " bl sub_800DAB8\n"
+ " bl ResetSpriteData\n"
+ " bl ResetTasks\n"
+ " bl sub_800E23C\n"
+ " bl FreeAllSpritePalettes\n"
+ " ldr r1, ._10 + 96\n"
+ " mov r0, #0x4\n"
+ " strb r0, [r1]\n"
+ " ldr r0, ._10 + 100\n"
+ " bl SetVBlankCallback\n"
+ " bl setup_poochyena_battle\n"
+ " ldr r0, ._10 + 104\n"
+ " ldrh r1, [r0]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._8 @cond_branch\n"
+ " ldr r0, ._10 + 108\n"
+ " bl SetMainCallback2\n"
+ " b ._9\n"
+ "._11:\n"
+ " .align 2, 0\n"
+ "._10:\n"
+ " .word 0x5006000\n"
+ " .word 0x400004c\n"
+ " .word 0x5051\n"
+ " .word gUnknown_030042C4\n"
+ " .word gUnknown_03004240\n"
+ " .word gUnknown_03004DE0\n"
+ " .word gUnknown_081F9674\n"
+ " .word 0xff10\n"
+ " .word gWindowConfig_81E6C58\n"
+ " .word gUnknown_030042A4\n"
+ " .word gUnknown_030042A0\n"
+ " .word gUnknown_030042C0\n"
+ " .word gUnknown_030041B4\n"
+ " .word gUnknown_03004288\n"
+ " .word gUnknown_03004280\n"
+ " .word gUnknown_030041B0\n"
+ " .word gUnknown_030041B8\n"
+ " .word gUnknown_02023A14+0x50\n"
+ " .word gBattleTerrain\n"
+ " .word gUnknown_03004210\n"
+ " .word gUnknown_030041D0\n"
+ " .word gWindowConfig_81E71D0\n"
+ " .word gUnknown_03004250\n"
+ " .word gWindowConfig_81E71EC\n"
+ " .word gReservedSpritePaletteCount\n"
+ " .word sub_800FCFC+1\n"
+ " .word gBattleTypeFlags\n"
+ " .word sub_800F298+1\n"
+ "._8:\n"
+ " ldr r0, ._15\n"
+ " bl SetMainCallback2\n"
+ "._9:\n"
+ " ldr r0, ._15 + 4\n"
+ " ldrh r1, [r0]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._13 @cond_branch\n"
+ " ldr r0, ._15 + 8\n"
+ " ldrb r1, [r0]\n"
+ " mov r0, #0x8\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._13 @cond_branch\n"
+ " ldr r0, ._15 + 12\n"
+ " ldr r1, ._15 + 16\n"
+ " ldrh r1, [r1]\n"
+ " bl CreateNPCTrainerParty\n"
+ " bl SetWildMonHeldItem\n"
+ "._13:\n"
+ " ldr r0, ._15 + 20\n"
+ " ldr r1, ._15 + 24\n"
+ " add r0, r0, r1\n"
+ " ldrb r1, [r0]\n"
+ " mov r2, #0x2\n"
+ " orr r1, r1, r2\n"
+ " strb r1, [r0]\n"
+ " ldr r4, ._15 + 28\n"
+ " mov r3, #0xfa\n"
+ " lsl r3, r3, #0x1\n"
+ " add r5, r4, r3\n"
+ "._14:\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x3\n"
+ " bl AdjustFriendship\n"
+ " add r4, r4, #0x64\n"
+ " cmp r4, r5\n"
+ " ble ._14 @cond_branch\n"
+ " mov r1, #0x0\n"
+ " ldr r0, ._15 + 32\n"
+ " strb r1, [r0]\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._16:\n"
+ " .align 2, 0\n"
+ "._15:\n"
+ " .word sub_800EC9C+1\n"
+ " .word gBattleTypeFlags\n"
+ " .word gUnknown_02023A14+0x50\n"
+ " .word gEnemyParty\n"
+ " .word gTrainerBattleOpponent\n"
+ " .word gMain\n"
+ " .word 0x43d\n"
+ " .word gPlayerParty\n"
+ " .word gBattleCommunication\n"
+ "\n"
+ );
+}
+#else
void InitBattle(void)
{
s32 i;
@@ -271,6 +496,7 @@ void InitBattle(void)
AdjustFriendship(&gPlayerParty[i], 3);
gBattleCommunication[0] = 0;
}
+#endif
void sub_800E9EC(void)
{
@@ -379,6 +605,476 @@ void shedinja_something(struct Pokemon *pkmn)
}
}
+#if DEBUG
+__attribute__((naked))
+void sub_800EC9C()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " bl RunTasks\n"
+ " bl AnimateSprites\n"
+ " bl BuildOamBuffer\n"
+ " bl GetMultiplayerId\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " ldr r0, ._55\n"
+ " ldr r1, ._55 + 4\n"
+ " add r0, r0, r1\n"
+ " strb r4, [r0]\n"
+ " mov r0, #0x1\n"
+ " add r5, r4, #0\n"
+ " eor r5, r5, r0\n"
+ " ldr r0, ._55 + 8\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0x9\n"
+ " bls ._53 @cond_branch\n"
+ " b ._140\n"
+ "._53:\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._55 + 12\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov pc, r0\n"
+ "._56:\n"
+ " .align 2, 0\n"
+ "._55:\n"
+ " .word +0x2000000\n"
+ " .word 0x160cb\n"
+ " .word gBattleCommunication\n"
+ " .word ._57\n"
+ "._57:\n"
+ " .word ._58\n"
+ " .word ._59\n"
+ " .word ._60\n"
+ " .word ._61\n"
+ " .word ._62\n"
+ " .word ._63\n"
+ " .word ._64\n"
+ " .word ._65\n"
+ " .word ._66\n"
+ " .word ._67\n"
+ "._58:\n"
+ " ldr r2, ._76\n"
+ " ldrh r1, [r2]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._68 @cond_branch\n"
+ " ldr r0, ._76 + 4\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " bne ._69 @cond_branch\n"
+ " b ._140\n"
+ "._69:\n"
+ " bl sub_8007ECC\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._71 @cond_branch\n"
+ " b ._140\n"
+ "._71:\n"
+ " ldr r1, ._76 + 8\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " strb r0, [r1, #0x1]\n"
+ " bl sub_800E9EC\n"
+ " bl sub_800EAAC\n"
+ " ldr r0, ._76 + 12\n"
+ " ldrb r1, [r0]\n"
+ " mov r0, #0x8\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._73 @cond_branch\n"
+ " mov r3, #0x0\n"
+ " ldr r1, ._76 + 16\n"
+ " ldr r0, ._76 + 20\n"
+ "._74:\n"
+ " strh r3, [r0, #0x18]\n"
+ " str r1, [r0, #0x14]\n"
+ " add r0, r0, #0x1c\n"
+ " add r3, r3, #0x1\n"
+ " cmp r3, #0x1\n"
+ " ble ._74 @cond_branch\n"
+ "._73:\n"
+ " bl bitmask_all_link_players_but_self\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r1, ._76 + 8\n"
+ " mov r2, #0x20\n"
+ " bl SendBlock\n"
+ " ldr r1, ._76 + 24\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " b ._140\n"
+ "._77:\n"
+ " .align 2, 0\n"
+ "._76:\n"
+ " .word gBattleTypeFlags\n"
+ " .word gReceivedRemoteLinkPlayers\n"
+ " .word +0x2000000\n"
+ " .word gUnknown_02023A14+0x50\n"
+ " .word 0x2211\n"
+ " .word gLinkPlayers\n"
+ " .word gBattleCommunication\n"
+ "._68:\n"
+ " mov r0, #0x4\n"
+ " orr r0, r0, r1\n"
+ " strh r0, [r2]\n"
+ " ldr r1, ._79\n"
+ " mov r0, #0x8\n"
+ " strb r0, [r1]\n"
+ " bl sub_800EB08\n"
+ " b ._140\n"
+ "._80:\n"
+ " .align 2, 0\n"
+ "._79:\n"
+ " .word gBattleCommunication\n"
+ "._59:\n"
+ " bl GetBlockReceivedStatus\n"
+ " mov r1, #0x3\n"
+ " and r1, r1, r0\n"
+ " cmp r1, #0x3\n"
+ " beq ._81 @cond_branch\n"
+ " b ._140\n"
+ "._81:\n"
+ " bl ResetBlockReceivedFlags\n"
+ " mov r3, #0x0\n"
+ " ldr r0, ._86\n"
+ " ldrh r1, [r0]\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " cmp r1, r0\n"
+ " bne ._83 @cond_branch\n"
+ " cmp r4, #0\n"
+ " bne ._84 @cond_branch\n"
+ " ldr r0, ._86 + 4\n"
+ " ldrh r1, [r0]\n"
+ " mov r2, #0xc\n"
+ " b ._85\n"
+ "._87:\n"
+ " .align 2, 0\n"
+ "._86:\n"
+ " .word gBlockRecvBuffer\n"
+ " .word gBattleTypeFlags\n"
+ "._84:\n"
+ " ldr r0, ._92\n"
+ " ldrh r1, [r0]\n"
+ " mov r2, #0x8\n"
+ "._85:\n"
+ " orr r1, r1, r2\n"
+ " strh r1, [r0]\n"
+ " add r3, r3, #0x1\n"
+ "._83:\n"
+ " lsl r7, r5, #0x8\n"
+ " cmp r3, #0\n"
+ " bne ._94 @cond_branch\n"
+ " ldr r0, ._92 + 4\n"
+ " mov r1, #0x80\n"
+ " lsl r1, r1, #0x1\n"
+ " add r2, r0, r1\n"
+ " ldrh r1, [r0]\n"
+ " add r6, r0, #0\n"
+ " ldrh r2, [r2]\n"
+ " cmp r1, r2\n"
+ " bne ._89 @cond_branch\n"
+ " cmp r4, #0\n"
+ " bne ._90 @cond_branch\n"
+ " ldr r0, ._92\n"
+ " ldrh r1, [r0]\n"
+ " mov r2, #0xc\n"
+ " b ._91\n"
+ "._93:\n"
+ " .align 2, 0\n"
+ "._92:\n"
+ " .word gBattleTypeFlags\n"
+ " .word gBlockRecvBuffer\n"
+ "._90:\n"
+ " ldr r0, ._96\n"
+ " ldrh r1, [r0]\n"
+ " mov r2, #0x8\n"
+ "._91:\n"
+ " orr r1, r1, r2\n"
+ " strh r1, [r0]\n"
+ " add r3, r3, #0x1\n"
+ "._89:\n"
+ " lsl r7, r5, #0x8\n"
+ " cmp r3, #0\n"
+ " bne ._94 @cond_branch\n"
+ " ldrh r1, [r6]\n"
+ " ldr r0, ._96 + 4\n"
+ " ldr r2, ._96\n"
+ " b ._95\n"
+ "._97:\n"
+ " .align 2, 0\n"
+ "._96:\n"
+ " .word gBattleTypeFlags\n"
+ " .word 0x101\n"
+ "._100:\n"
+ " add r3, r3, #0x1\n"
+ " cmp r3, #0x1\n"
+ " bgt ._98 @cond_branch\n"
+ " lsl r0, r3, #0x8\n"
+ " add r0, r0, r6\n"
+ " ldrh r1, [r0]\n"
+ " ldr r0, ._103\n"
+ "._95:\n"
+ " cmp r1, r0\n"
+ " bls ._100 @cond_branch\n"
+ " cmp r3, r4\n"
+ " beq ._100 @cond_branch\n"
+ "._98:\n"
+ " cmp r3, #0x2\n"
+ " bne ._101 @cond_branch\n"
+ " ldrh r0, [r2]\n"
+ " mov r1, #0xc\n"
+ " b ._102\n"
+ "._104:\n"
+ " .align 2, 0\n"
+ "._103:\n"
+ " .word 0x101\n"
+ "._101:\n"
+ " ldrh r0, [r2]\n"
+ " mov r1, #0x8\n"
+ "._102:\n"
+ " orr r0, r0, r1\n"
+ " strh r0, [r2]\n"
+ "._94:\n"
+ " bl sub_800EB08\n"
+ " ldr r0, ._106\n"
+ " mov r1, #0x0\n"
+ " bl CreateTask\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r1, ._106 + 4\n"
+ " lsl r2, r0, #0x2\n"
+ " add r2, r2, r0\n"
+ " lsl r2, r2, #0x3\n"
+ " add r2, r2, r1\n"
+ " mov r1, #0x0\n"
+ " mov r0, #0x87\n"
+ " lsl r0, r0, #0x1\n"
+ " strh r0, [r2, #0xa]\n"
+ " mov r0, #0x5a\n"
+ " strh r0, [r2, #0xc]\n"
+ " strh r1, [r2, #0x12]\n"
+ " ldr r0, ._106 + 8\n"
+ " ldrb r1, [r0, #0x2]\n"
+ " ldrb r0, [r0, #0x3]\n"
+ " lsl r0, r0, #0x8\n"
+ " orr r1, r1, r0\n"
+ " strh r1, [r2, #0xe]\n"
+ " ldr r0, ._106 + 12\n"
+ " add r0, r0, #0x2\n"
+ " add r0, r7, r0\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r2, #0x10]\n"
+ " b ._129\n"
+ "._107:\n"
+ " .align 2, 0\n"
+ "._106:\n"
+ " .word sub_800DE30+1\n"
+ " .word gTasks\n"
+ " .word +0x2000000\n"
+ " .word gBlockRecvBuffer\n"
+ "._60:\n"
+ " bl sub_8007ECC\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._108 @cond_branch\n"
+ " b ._140\n"
+ "._108:\n"
+ " bl bitmask_all_link_players_but_self\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r1, ._111\n"
+ " mov r2, #0xc8\n"
+ " bl SendBlock\n"
+ " b ._129\n"
+ "._112:\n"
+ " .align 2, 0\n"
+ "._111:\n"
+ " .word gPlayerParty\n"
+ "._61:\n"
+ " bl GetBlockReceivedStatus\n"
+ " mov r1, #0x3\n"
+ " and r1, r1, r0\n"
+ " cmp r1, #0x3\n"
+ " beq ._113 @cond_branch\n"
+ " b ._140\n"
+ "._113:\n"
+ " bl ResetBlockReceivedFlags\n"
+ " ldr r0, ._116\n"
+ " lsl r1, r5, #0x8\n"
+ " ldr r2, ._116 + 4\n"
+ " add r1, r1, r2\n"
+ " mov r2, #0xc8\n"
+ " bl gScriptFuncs_End+0x5bc4\n"
+ " b ._129\n"
+ "._117:\n"
+ " .align 2, 0\n"
+ "._116:\n"
+ " .word gEnemyParty\n"
+ " .word gBlockRecvBuffer\n"
+ "._62:\n"
+ " bl sub_8007ECC\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._118 @cond_branch\n"
+ " b ._140\n"
+ "._118:\n"
+ " bl bitmask_all_link_players_but_self\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r1, ._121\n"
+ " mov r2, #0xc8\n"
+ " bl SendBlock\n"
+ " b ._129\n"
+ "._122:\n"
+ " .align 2, 0\n"
+ "._121:\n"
+ " .word gPlayerParty+0xc8\n"
+ "._63:\n"
+ " bl GetBlockReceivedStatus\n"
+ " mov r1, #0x3\n"
+ " and r1, r1, r0\n"
+ " cmp r1, #0x3\n"
+ " beq ._123 @cond_branch\n"
+ " b ._140\n"
+ "._123:\n"
+ " bl ResetBlockReceivedFlags\n"
+ " ldr r0, ._126\n"
+ " lsl r1, r5, #0x8\n"
+ " ldr r2, ._126 + 4\n"
+ " add r1, r1, r2\n"
+ " mov r2, #0xc8\n"
+ " bl gScriptFuncs_End+0x5bc4\n"
+ " b ._129\n"
+ "._127:\n"
+ " .align 2, 0\n"
+ "._126:\n"
+ " .word gEnemyParty+0xc8\n"
+ " .word gBlockRecvBuffer\n"
+ "._64:\n"
+ " bl sub_8007ECC\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._140 @cond_branch\n"
+ " bl bitmask_all_link_players_but_self\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r1, ._130\n"
+ " mov r2, #0xc8\n"
+ " bl SendBlock\n"
+ " b ._129\n"
+ "._131:\n"
+ " .align 2, 0\n"
+ "._130:\n"
+ " .word gPlayerParty+0x190\n"
+ "._65:\n"
+ " bl GetBlockReceivedStatus\n"
+ " mov r1, #0x3\n"
+ " and r1, r1, r0\n"
+ " cmp r1, #0x3\n"
+ " bne ._140 @cond_branch\n"
+ " bl ResetBlockReceivedFlags\n"
+ " ldr r4, ._134\n"
+ " lsl r1, r5, #0x8\n"
+ " ldr r0, ._134 + 4\n"
+ " add r1, r1, r0\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0xc8\n"
+ " bl gScriptFuncs_End+0x5bc4\n"
+ " ldr r1, ._134 + 8\n"
+ " add r0, r4, r1\n"
+ " bl shedinja_something\n"
+ " ldr r1, ._134 + 12\n"
+ " add r0, r4, r1\n"
+ " bl shedinja_something\n"
+ " add r0, r4, #0\n"
+ " sub r0, r0, #0xc8\n"
+ " bl shedinja_something\n"
+ " add r0, r4, #0\n"
+ " sub r0, r0, #0x64\n"
+ " bl shedinja_something\n"
+ " add r0, r4, #0\n"
+ " bl shedinja_something\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0x64\n"
+ " bl shedinja_something\n"
+ "._129:\n"
+ " ldr r1, ._134 + 16\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " b ._140\n"
+ "._135:\n"
+ " .align 2, 0\n"
+ "._134:\n"
+ " .word gEnemyParty+0x190\n"
+ " .word gBlockRecvBuffer\n"
+ " .word 0xfffffe70\n"
+ " .word 0xfffffed4\n"
+ " .word gBattleCommunication\n"
+ "._66:\n"
+ " bl sub_800B950\n"
+ " ldr r0, ._137\n"
+ " ldrb r1, [r0]\n"
+ " add r1, r1, #0x1\n"
+ " mov r2, #0x0\n"
+ " strb r1, [r0]\n"
+ " strb r2, [r0, #0x1]\n"
+ " strb r2, [r0, #0x2]\n"
+ " b ._140\n"
+ "._138:\n"
+ " .align 2, 0\n"
+ "._137:\n"
+ " .word gBattleCommunication\n"
+ "._67:\n"
+ " ldr r0, ._141\n"
+ " add r1, r0, #1\n"
+ " bl battle_load_something\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._140 @cond_branch\n"
+ " ldr r2, ._141 + 4\n"
+ " ldr r1, ._141 + 8\n"
+ " ldr r0, [r1]\n"
+ " str r0, [r2]\n"
+ " ldr r0, ._141 + 12\n"
+ " str r0, [r1]\n"
+ " ldr r0, ._141 + 16\n"
+ " bl SetMainCallback2\n"
+ " ldr r3, ._141 + 20\n"
+ " ldrh r2, [r3]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._140 @cond_branch\n"
+ " ldr r1, ._141 + 24\n"
+ " mov r4, #0x80\n"
+ " lsl r4, r4, #0x4\n"
+ " add r0, r4, #0\n"
+ " strh r0, [r1]\n"
+ " mov r0, #0x20\n"
+ " orr r0, r0, r2\n"
+ " strh r0, [r3]\n"
+ "._140:\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._142:\n"
+ " .align 2, 0\n"
+ "._141:\n"
+ " .word gUnknown_02024D1F\n"
+ " .word gPreBattleCallback1\n"
+ " .word gMain\n"
+ " .word debug_sub_80139E4+1\n"
+ " .word sub_800F808+1\n"
+ " .word gBattleTypeFlags\n"
+ " .word gTrainerBattleOpponent\n"
+ "\n"
+ );
+}
+#else
void sub_800EC9C(void)
{
u8 playerId;
@@ -535,6 +1231,7 @@ void sub_800EC9C(void)
break;
}
}
+#endif
void sub_800F02C(void)
{
@@ -561,6 +1258,236 @@ void sub_800F02C(void)
memcpy(gSharedMem, gUnknown_02023A00, 0x60);
}
+#ifdef DEBUG
+__attribute__((naked))
+void sub_800F104()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r9\n"
+ " mov r6, r8\n"
+ " push {r6, r7}\n"
+ " bl GetMultiplayerId\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " ldr r0, ._151\n"
+ " ldr r2, ._151 + 4\n"
+ " add r1, r0, r2\n"
+ " strb r6, [r1]\n"
+ " ldr r1, ._151 + 8\n"
+ " add r1, r1, r0\n"
+ " mov r9, r1\n"
+ " sub r2, r2, #0x9\n"
+ " add r2, r2, r0\n"
+ " mov r8, r2\n"
+ " bl RunTasks\n"
+ " bl AnimateSprites\n"
+ " bl BuildOamBuffer\n"
+ " ldr r2, ._151 + 12\n"
+ " ldrb r0, [r2]\n"
+ " cmp r0, #0x1\n"
+ " beq ._147 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bgt ._148 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._149 @cond_branch\n"
+ " b ._183\n"
+ "._152:\n"
+ " .align 2, 0\n"
+ "._151:\n"
+ " .word +0x2000000\n"
+ " .word 0x160cb\n"
+ " .word 0x160c4\n"
+ " .word gBattleCommunication\n"
+ "._148:\n"
+ " cmp r0, #0x2\n"
+ " bne ._153 @cond_branch\n"
+ " b ._154\n"
+ "._153:\n"
+ " cmp r0, #0x3\n"
+ " bne ._155 @cond_branch\n"
+ " b ._156\n"
+ "._155:\n"
+ " b ._183\n"
+ "._149:\n"
+ " ldr r0, ._165\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " bne ._158 @cond_branch\n"
+ " b ._183\n"
+ "._158:\n"
+ " ldr r0, ._165 + 4\n"
+ " ldrb r1, [r0]\n"
+ " mov r0, #0x8\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._160 @cond_branch\n"
+ " mov r4, #0x0\n"
+ " ldr r1, ._165 + 8\n"
+ " ldr r0, ._165 + 12\n"
+ "._161:\n"
+ " strh r4, [r0, #0x18]\n"
+ " str r1, [r0, #0x14]\n"
+ " add r0, r0, #0x1c\n"
+ " add r4, r4, #0x1\n"
+ " cmp r4, #0x3\n"
+ " ble ._161 @cond_branch\n"
+ "._160:\n"
+ " bl sub_8007ECC\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._162 @cond_branch\n"
+ " b ._183\n"
+ "._162:\n"
+ " bl sub_800F02C\n"
+ " bl bitmask_all_link_players_but_self\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r1, ._165 + 16\n"
+ " mov r2, #0x60\n"
+ " bl SendBlock\n"
+ " ldr r1, ._165 + 20\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " b ._183\n"
+ "._166:\n"
+ " .align 2, 0\n"
+ "._165:\n"
+ " .word gReceivedRemoteLinkPlayers\n"
+ " .word gUnknown_02023A14+0x50\n"
+ " .word 0x2211\n"
+ " .word gLinkPlayers\n"
+ " .word +0x2000000\n"
+ " .word gBattleCommunication\n"
+ "._147:\n"
+ " bl GetBlockReceivedStatus\n"
+ " mov r1, #0xf\n"
+ " and r1, r1, r0\n"
+ " cmp r1, #0xf\n"
+ " bne ._183 @cond_branch\n"
+ " bl ResetBlockReceivedFlags\n"
+ " mov r4, #0x0\n"
+ " lsl r0, r6, #0x3\n"
+ " sub r0, r0, r6\n"
+ " lsl r5, r0, #0x2\n"
+ " mov r7, #0x0\n"
+ "._175:\n"
+ " cmp r4, r6\n"
+ " beq ._174 @cond_branch\n"
+ " ldr r2, ._172\n"
+ " add r0, r7, r2\n"
+ " ldrh r1, [r0, #0x18]\n"
+ " mov r3, #0x1\n"
+ " add r0, r3, #0\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._169 @cond_branch\n"
+ " add r0, r5, r2\n"
+ " ldrh r1, [r0, #0x18]\n"
+ " add r0, r3, #0\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._170 @cond_branch\n"
+ " b ._174\n"
+ "._173:\n"
+ " .align 2, 0\n"
+ "._172:\n"
+ " .word gLinkPlayers\n"
+ "._169:\n"
+ " add r0, r5, r2\n"
+ " ldrh r1, [r0, #0x18]\n"
+ " add r0, r3, #0\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._174 @cond_branch\n"
+ "._170:\n"
+ " lsl r1, r4, #0x8\n"
+ " ldr r0, ._177\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._177 + 4\n"
+ " mov r2, #0x60\n"
+ " bl gScriptFuncs_End+0x5bc4\n"
+ "._174:\n"
+ " add r7, r7, #0x1c\n"
+ " add r4, r4, #0x1\n"
+ " cmp r4, #0x3\n"
+ " ble ._175 @cond_branch\n"
+ " ldr r1, ._177 + 8\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " ldr r1, ._177 + 12\n"
+ " ldr r0, [r1, #0x8]\n"
+ " mov r2, r9\n"
+ " str r0, [r2]\n"
+ " ldr r0, ._177 + 16\n"
+ " ldrh r0, [r0]\n"
+ " mov r2, r8\n"
+ " strh r0, [r2]\n"
+ " ldr r0, ._177 + 20\n"
+ " str r0, [r1, #0x8]\n"
+ " mov r0, #0x5\n"
+ " mov r1, #0x0\n"
+ " bl OpenPartyMenu\n"
+ " b ._183\n"
+ "._178:\n"
+ " .align 2, 0\n"
+ "._177:\n"
+ " .word gBlockRecvBuffer\n"
+ " .word gUnknown_02023A00\n"
+ " .word gBattleCommunication\n"
+ " .word gMain\n"
+ " .word gBattleTypeFlags\n"
+ " .word sub_800F104+1\n"
+ "._154:\n"
+ " ldr r0, ._181\n"
+ " ldrb r1, [r0, #0x7]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._183 @cond_branch\n"
+ " mov r0, #0x3\n"
+ " strb r0, [r2]\n"
+ " bl sub_800832C\n"
+ " b ._183\n"
+ "._182:\n"
+ " .align 2, 0\n"
+ "._181:\n"
+ " .word gPaletteFade\n"
+ "._156:\n"
+ " ldr r0, ._184\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " bne ._183 @cond_branch\n"
+ " ldr r1, ._184 + 4\n"
+ " mov r2, r8\n"
+ " ldrh r0, [r2]\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._184 + 8\n"
+ " mov r2, r9\n"
+ " ldr r0, [r2]\n"
+ " str r0, [r1, #0x8]\n"
+ " ldr r0, ._184 + 12\n"
+ " bl SetMainCallback2\n"
+ "._183:\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"
+ "._185:\n"
+ " .align 2, 0\n"
+ "._184:\n"
+ " .word gReceivedRemoteLinkPlayers\n"
+ " .word gBattleTypeFlags\n"
+ " .word gMain\n"
+ " .word InitBattle+1\n"
+ "\n"
+ );
+}
+#else
void sub_800F104(void)
{
u8 playerId;
@@ -625,7 +1552,774 @@ void sub_800F104(void)
break;
}
}
+#endif
+#ifdef DEBUG
+__attribute__((naked))
+void sub_800F298()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " bl GetMultiplayerId\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " ldr r0, ._188\n"
+ " ldr r1, ._188 + 4\n"
+ " add r0, r0, r1\n"
+ " strb r6, [r0]\n"
+ " bl RunTasks\n"
+ " bl AnimateSprites\n"
+ " bl BuildOamBuffer\n"
+ " ldr r0, ._188 + 8\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0x7\n"
+ " bls ._186 @cond_branch\n"
+ " b ._352\n"
+ "._186:\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._188 + 12\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov pc, r0\n"
+ "._189:\n"
+ " .align 2, 0\n"
+ "._188:\n"
+ " .word +0x2000000\n"
+ " .word 0x160cb\n"
+ " .word gBattleCommunication\n"
+ " .word ._190\n"
+ "._190:\n"
+ " .word ._191\n"
+ " .word ._192\n"
+ " .word ._193\n"
+ " .word ._194\n"
+ " .word ._195\n"
+ " .word ._196\n"
+ " .word ._197\n"
+ " .word ._198\n"
+ "._191:\n"
+ " ldr r0, ._206\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " bne ._199 @cond_branch\n"
+ " b ._352\n"
+ "._199:\n"
+ " ldr r0, ._206 + 4\n"
+ " ldrb r1, [r0]\n"
+ " mov r0, #0x8\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._201 @cond_branch\n"
+ " mov r4, #0x0\n"
+ " ldr r1, ._206 + 8\n"
+ " ldr r0, ._206 + 12\n"
+ "._202:\n"
+ " strh r4, [r0, #0x18]\n"
+ " str r1, [r0, #0x14]\n"
+ " add r0, r0, #0x1c\n"
+ " add r4, r4, #0x1\n"
+ " cmp r4, #0x3\n"
+ " ble ._202 @cond_branch\n"
+ "._201:\n"
+ " bl sub_8007ECC\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._203 @cond_branch\n"
+ " b ._352\n"
+ "._203:\n"
+ " ldr r4, ._206 + 16\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r4]\n"
+ " strb r0, [r4, #0x1]\n"
+ " bl sub_800E9EC\n"
+ " bl sub_800EAAC\n"
+ " bl bitmask_all_link_players_but_self\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " add r1, r4, #0\n"
+ " mov r2, #0x20\n"
+ " bl SendBlock\n"
+ " b ._300\n"
+ "._207:\n"
+ " .align 2, 0\n"
+ "._206:\n"
+ " .word gReceivedRemoteLinkPlayers\n"
+ " .word gUnknown_02023A14+0x50\n"
+ " .word 0x2211\n"
+ " .word gLinkPlayers\n"
+ " .word +0x2000000\n"
+ "._192:\n"
+ " bl GetBlockReceivedStatus\n"
+ " mov r1, #0xf\n"
+ " and r1, r1, r0\n"
+ " cmp r1, #0xf\n"
+ " beq ._208 @cond_branch\n"
+ " b ._352\n"
+ "._208:\n"
+ " bl ResetBlockReceivedFlags\n"
+ " mov r4, #0x0\n"
+ " ldr r0, ._213\n"
+ " ldrh r1, [r0]\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " cmp r1, r0\n"
+ " bne ._210 @cond_branch\n"
+ " cmp r6, #0\n"
+ " bne ._211 @cond_branch\n"
+ " ldr r0, ._213 + 4\n"
+ " ldrh r1, [r0]\n"
+ " mov r2, #0xc\n"
+ " b ._212\n"
+ "._214:\n"
+ " .align 2, 0\n"
+ "._213:\n"
+ " .word gBlockRecvBuffer\n"
+ " .word gBattleTypeFlags\n"
+ "._211:\n"
+ " ldr r0, ._221\n"
+ " ldrh r1, [r0]\n"
+ " mov r2, #0x8\n"
+ "._212:\n"
+ " orr r1, r1, r2\n"
+ " strh r1, [r0]\n"
+ " add r4, r4, #0x1\n"
+ "._210:\n"
+ " cmp r4, #0\n"
+ " bne ._223 @cond_branch\n"
+ " mov r2, #0x0\n"
+ " ldr r1, ._221 + 4\n"
+ " add r5, r1, #0\n"
+ " mov r3, #0x80\n"
+ " lsl r3, r3, #0x1\n"
+ "._217:\n"
+ " add r1, r1, r3\n"
+ " add r2, r2, #0x1\n"
+ " cmp r2, #0x3\n"
+ " bgt ._216 @cond_branch\n"
+ " ldrh r0, [r5]\n"
+ " ldrh r7, [r1]\n"
+ " cmp r0, r7\n"
+ " beq ._217 @cond_branch\n"
+ "._216:\n"
+ " cmp r2, #0x4\n"
+ " bne ._218 @cond_branch\n"
+ " cmp r6, #0\n"
+ " bne ._219 @cond_branch\n"
+ " ldr r0, ._221\n"
+ " ldrh r1, [r0]\n"
+ " mov r2, #0xc\n"
+ " b ._220\n"
+ "._222:\n"
+ " .align 2, 0\n"
+ "._221:\n"
+ " .word gBattleTypeFlags\n"
+ " .word gBlockRecvBuffer\n"
+ "._219:\n"
+ " ldr r0, ._233\n"
+ " ldrh r1, [r0]\n"
+ " mov r2, #0x8\n"
+ "._220:\n"
+ " orr r1, r1, r2\n"
+ " strh r1, [r0]\n"
+ " add r4, r4, #0x1\n"
+ "._218:\n"
+ " cmp r4, #0\n"
+ " bne ._223 @cond_branch\n"
+ " ldr r0, ._233 + 4\n"
+ " ldrh r2, [r0]\n"
+ " ldr r1, ._233 + 8\n"
+ " add r3, r0, #0\n"
+ " ldr r5, ._233\n"
+ " cmp r2, r1\n"
+ " beq ._224 @cond_branch\n"
+ "._230:\n"
+ " lsl r0, r4, #0x8\n"
+ " add r0, r0, r3\n"
+ " ldrh r0, [r0]\n"
+ " ldr r1, ._233 + 8\n"
+ " cmp r0, r1\n"
+ " bls ._225 @cond_branch\n"
+ " cmp r4, r6\n"
+ " bne ._227 @cond_branch\n"
+ "._225:\n"
+ " add r4, r4, #0x1\n"
+ " cmp r4, #0x3\n"
+ " bgt ._227 @cond_branch\n"
+ " lsl r0, r4, #0x8\n"
+ " add r0, r0, r3\n"
+ " ldrh r0, [r0]\n"
+ " cmp r0, r1\n"
+ " bne ._230 @cond_branch\n"
+ "._224:\n"
+ " cmp r4, r6\n"
+ " beq ._230 @cond_branch\n"
+ " cmp r4, r6\n"
+ " bge ._230 @cond_branch\n"
+ "._227:\n"
+ " cmp r4, #0x4\n"
+ " bne ._231 @cond_branch\n"
+ " ldrh r0, [r5]\n"
+ " mov r1, #0xc\n"
+ " b ._232\n"
+ "._234:\n"
+ " .align 2, 0\n"
+ "._233:\n"
+ " .word gBattleTypeFlags\n"
+ " .word gBlockRecvBuffer\n"
+ " .word 0x101\n"
+ "._231:\n"
+ " ldrh r0, [r5]\n"
+ " mov r1, #0x8\n"
+ "._232:\n"
+ " orr r0, r0, r1\n"
+ " strh r0, [r5]\n"
+ "._223:\n"
+ " bl sub_800EB08\n"
+ " ldr r0, ._239\n"
+ " ldr r1, ._239 + 4\n"
+ " mov r2, #0x96\n"
+ " lsl r2, r2, #0x1\n"
+ " bl gScriptFuncs_End+0x5bc4\n"
+ " ldr r0, ._239 + 8\n"
+ " mov r1, #0x0\n"
+ " bl CreateTask\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r2, ._239 + 12\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r2\n"
+ " mov r2, #0x0\n"
+ " mov r0, #0x87\n"
+ " lsl r0, r0, #0x1\n"
+ " strh r0, [r1, #0xa]\n"
+ " mov r0, #0x5a\n"
+ " strh r0, [r1, #0xc]\n"
+ " strh r2, [r1, #0x12]\n"
+ " strh r2, [r1, #0xe]\n"
+ " strh r2, [r1, #0x10]\n"
+ " add r2, r1, #0\n"
+ " ldr r0, ._239 + 16\n"
+ " add r3, r0, #2\n"
+ " ldr r6, ._239 + 20\n"
+ " mov r5, #0x3f\n"
+ " mov r7, #0x80\n"
+ " lsl r7, r7, #0x1\n"
+ " mov r4, #0x3\n"
+ "._247:\n"
+ " ldrh r0, [r6, #0x18]\n"
+ " cmp r0, #0x1\n"
+ " beq ._235 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bgt ._236 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._237 @cond_branch\n"
+ " b ._246\n"
+ "._240:\n"
+ " .align 2, 0\n"
+ "._239:\n"
+ " .word +0x201d000\n"
+ " .word gPlayerParty\n"
+ " .word sub_800DE30+1\n"
+ " .word gTasks\n"
+ " .word gBlockRecvBuffer\n"
+ " .word gLinkPlayers\n"
+ "._236:\n"
+ " cmp r0, #0x2\n"
+ " beq ._241 @cond_branch\n"
+ " cmp r0, #0x3\n"
+ " beq ._242 @cond_branch\n"
+ " b ._246\n"
+ "._237:\n"
+ " ldrh r0, [r3]\n"
+ " add r1, r5, #0\n"
+ " and r1, r1, r0\n"
+ " b ._244\n"
+ "._235:\n"
+ " ldrh r0, [r3]\n"
+ " add r1, r5, #0\n"
+ " and r1, r1, r0\n"
+ " b ._245\n"
+ "._241:\n"
+ " ldrh r0, [r3]\n"
+ " add r1, r5, #0\n"
+ " and r1, r1, r0\n"
+ " lsl r1, r1, #0x6\n"
+ "._244:\n"
+ " ldrh r0, [r2, #0xe]\n"
+ " orr r1, r1, r0\n"
+ " strh r1, [r2, #0xe]\n"
+ " b ._246\n"
+ "._242:\n"
+ " ldrh r0, [r3]\n"
+ " add r1, r5, #0\n"
+ " and r1, r1, r0\n"
+ " lsl r1, r1, #0x6\n"
+ "._245:\n"
+ " ldrh r0, [r2, #0x10]\n"
+ " orr r1, r1, r0\n"
+ " strh r1, [r2, #0x10]\n"
+ "._246:\n"
+ " add r3, r3, r7\n"
+ " add r6, r6, #0x1c\n"
+ " sub r4, r4, #0x1\n"
+ " cmp r4, #0\n"
+ " bge ._247 @cond_branch\n"
+ " bl ZeroPlayerPartyMons\n"
+ " bl ZeroEnemyPartyMons\n"
+ " ldr r1, ._251\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ "._193:\n"
+ " bl sub_8007ECC\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._248 @cond_branch\n"
+ " b ._352\n"
+ "._248:\n"
+ " bl bitmask_all_link_players_but_self\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r1, ._251 + 4\n"
+ " mov r2, #0xc8\n"
+ " bl SendBlock\n"
+ " b ._300\n"
+ "._252:\n"
+ " .align 2, 0\n"
+ "._251:\n"
+ " .word gBattleCommunication\n"
+ " .word +0x201d000\n"
+ "._194:\n"
+ " bl GetBlockReceivedStatus\n"
+ " mov r1, #0xf\n"
+ " and r1, r1, r0\n"
+ " cmp r1, #0xf\n"
+ " beq ._253 @cond_branch\n"
+ " b ._352\n"
+ "._253:\n"
+ " bl ResetBlockReceivedFlags\n"
+ " mov r4, #0x0\n"
+ " lsl r0, r6, #0x3\n"
+ " sub r0, r0, r6\n"
+ " lsl r0, r0, #0x2\n"
+ " mov r8, r0\n"
+ " ldr r5, ._260\n"
+ " mov r7, #0x0\n"
+ "._294:\n"
+ " cmp r4, r6\n"
+ " bne ._255 @cond_branch\n"
+ " ldr r0, ._260 + 4\n"
+ " add r0, r7, r0\n"
+ " ldrh r0, [r0, #0x18]\n"
+ " cmp r0, #0x2\n"
+ " bgt ._256 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bge ._257 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._258 @cond_branch\n"
+ " b ._291\n"
+ "._261:\n"
+ " .align 2, 0\n"
+ "._260:\n"
+ " .word gBlockRecvBuffer\n"
+ " .word gLinkPlayers\n"
+ "._256:\n"
+ " cmp r0, #0x3\n"
+ " bne ._291 @cond_branch\n"
+ "._258:\n"
+ " ldr r0, ._264\n"
+ " b ._283\n"
+ "._265:\n"
+ " .align 2, 0\n"
+ "._264:\n"
+ " .word gPlayerParty\n"
+ "._257:\n"
+ " ldr r0, ._267\n"
+ " b ._283\n"
+ "._268:\n"
+ " .align 2, 0\n"
+ "._267:\n"
+ " .word gPlayerParty+0x12c\n"
+ "._255:\n"
+ " ldr r2, ._272\n"
+ " add r0, r7, r2\n"
+ " ldrh r1, [r0, #0x18]\n"
+ " mov r3, #0x1\n"
+ " add r0, r3, #0\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._269 @cond_branch\n"
+ " mov r1, r8\n"
+ " add r0, r1, r2\n"
+ " ldrh r1, [r0, #0x18]\n"
+ " add r0, r3, #0\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._270 @cond_branch\n"
+ " b ._274\n"
+ "._273:\n"
+ " .align 2, 0\n"
+ "._272:\n"
+ " .word gLinkPlayers\n"
+ "._269:\n"
+ " mov r1, r8\n"
+ " add r0, r1, r2\n"
+ " ldrh r1, [r0, #0x18]\n"
+ " add r0, r3, #0\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._274 @cond_branch\n"
+ "._270:\n"
+ " add r0, r7, r2\n"
+ " ldrh r2, [r0, #0x18]\n"
+ " cmp r2, #0x2\n"
+ " bgt ._275 @cond_branch\n"
+ " cmp r2, #0x1\n"
+ " bge ._276 @cond_branch\n"
+ " cmp r2, #0\n"
+ " beq ._277 @cond_branch\n"
+ " b ._291\n"
+ "._275:\n"
+ " cmp r2, #0x3\n"
+ " bne ._291 @cond_branch\n"
+ "._277:\n"
+ " ldr r0, ._281\n"
+ " b ._283\n"
+ "._282:\n"
+ " .align 2, 0\n"
+ "._281:\n"
+ " .word gPlayerParty\n"
+ "._276:\n"
+ " ldr r0, ._284\n"
+ " b ._283\n"
+ "._285:\n"
+ " .align 2, 0\n"
+ "._284:\n"
+ " .word gPlayerParty+0x12c\n"
+ "._274:\n"
+ " add r0, r7, r2\n"
+ " ldrh r2, [r0, #0x18]\n"
+ " cmp r2, #0x2\n"
+ " bgt ._286 @cond_branch\n"
+ " cmp r2, #0x1\n"
+ " bge ._287 @cond_branch\n"
+ " cmp r2, #0\n"
+ " beq ._288 @cond_branch\n"
+ " b ._291\n"
+ "._286:\n"
+ " cmp r2, #0x3\n"
+ " bne ._291 @cond_branch\n"
+ "._288:\n"
+ " ldr r0, ._292\n"
+ "._283:\n"
+ " add r1, r5, #0\n"
+ " mov r2, #0xc8\n"
+ " bl gScriptFuncs_End+0x5bc4\n"
+ " b ._291\n"
+ "._293:\n"
+ " .align 2, 0\n"
+ "._292:\n"
+ " .word gEnemyParty\n"
+ "._287:\n"
+ " ldr r0, ._296\n"
+ " add r1, r5, #0\n"
+ " mov r2, #0xc8\n"
+ " bl gScriptFuncs_End+0x5bc4\n"
+ "._291:\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " add r5, r5, r0\n"
+ " add r7, r7, #0x1c\n"
+ " add r4, r4, #0x1\n"
+ " cmp r4, #0x3\n"
+ " ble ._294 @cond_branch\n"
+ " b ._300\n"
+ "._297:\n"
+ " .align 2, 0\n"
+ "._296:\n"
+ " .word gEnemyParty+0x12c\n"
+ "._195:\n"
+ " bl sub_8007ECC\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._298 @cond_branch\n"
+ " b ._352\n"
+ "._298:\n"
+ " bl bitmask_all_link_players_but_self\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r1, ._301\n"
+ " mov r2, #0x64\n"
+ " bl SendBlock\n"
+ " b ._300\n"
+ "._302:\n"
+ " .align 2, 0\n"
+ "._301:\n"
+ " .word +0x201d0c8\n"
+ "._196:\n"
+ " bl GetBlockReceivedStatus\n"
+ " mov r1, #0xf\n"
+ " and r1, r1, r0\n"
+ " cmp r1, #0xf\n"
+ " beq ._303 @cond_branch\n"
+ " b ._352\n"
+ "._303:\n"
+ " bl ResetBlockReceivedFlags\n"
+ " mov r4, #0x0\n"
+ " lsl r0, r6, #0x3\n"
+ " sub r0, r0, r6\n"
+ " lsl r0, r0, #0x2\n"
+ " mov r8, r0\n"
+ " ldr r5, ._310\n"
+ " mov r7, #0x0\n"
+ "._344:\n"
+ " cmp r4, r6\n"
+ " bne ._305 @cond_branch\n"
+ " ldr r0, ._310 + 4\n"
+ " add r0, r7, r0\n"
+ " ldrh r0, [r0, #0x18]\n"
+ " cmp r0, #0x2\n"
+ " bgt ._306 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bge ._307 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._308 @cond_branch\n"
+ " b ._341\n"
+ "._311:\n"
+ " .align 2, 0\n"
+ "._310:\n"
+ " .word gBlockRecvBuffer\n"
+ " .word gLinkPlayers\n"
+ "._306:\n"
+ " cmp r0, #0x3\n"
+ " bne ._341 @cond_branch\n"
+ "._308:\n"
+ " ldr r0, ._314\n"
+ " b ._333\n"
+ "._315:\n"
+ " .align 2, 0\n"
+ "._314:\n"
+ " .word gPlayerParty+0xc8\n"
+ "._307:\n"
+ " ldr r0, ._317\n"
+ " b ._333\n"
+ "._318:\n"
+ " .align 2, 0\n"
+ "._317:\n"
+ " .word gPlayerParty+0x1f4\n"
+ "._305:\n"
+ " ldr r2, ._322\n"
+ " add r0, r7, r2\n"
+ " ldrh r1, [r0, #0x18]\n"
+ " mov r3, #0x1\n"
+ " add r0, r3, #0\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._319 @cond_branch\n"
+ " mov r1, r8\n"
+ " add r0, r1, r2\n"
+ " ldrh r1, [r0, #0x18]\n"
+ " add r0, r3, #0\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._320 @cond_branch\n"
+ " b ._324\n"
+ "._323:\n"
+ " .align 2, 0\n"
+ "._322:\n"
+ " .word gLinkPlayers\n"
+ "._319:\n"
+ " mov r1, r8\n"
+ " add r0, r1, r2\n"
+ " ldrh r1, [r0, #0x18]\n"
+ " add r0, r3, #0\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._324 @cond_branch\n"
+ "._320:\n"
+ " add r0, r7, r2\n"
+ " ldrh r2, [r0, #0x18]\n"
+ " cmp r2, #0x2\n"
+ " bgt ._325 @cond_branch\n"
+ " cmp r2, #0x1\n"
+ " bge ._326 @cond_branch\n"
+ " cmp r2, #0\n"
+ " beq ._327 @cond_branch\n"
+ " b ._341\n"
+ "._325:\n"
+ " cmp r2, #0x3\n"
+ " bne ._341 @cond_branch\n"
+ "._327:\n"
+ " ldr r0, ._331\n"
+ " b ._333\n"
+ "._332:\n"
+ " .align 2, 0\n"
+ "._331:\n"
+ " .word gPlayerParty+0xc8\n"
+ "._326:\n"
+ " ldr r0, ._334\n"
+ " b ._333\n"
+ "._335:\n"
+ " .align 2, 0\n"
+ "._334:\n"
+ " .word gPlayerParty+0x1f4\n"
+ "._324:\n"
+ " add r0, r7, r2\n"
+ " ldrh r2, [r0, #0x18]\n"
+ " cmp r2, #0x2\n"
+ " bgt ._336 @cond_branch\n"
+ " cmp r2, #0x1\n"
+ " bge ._337 @cond_branch\n"
+ " cmp r2, #0\n"
+ " beq ._338 @cond_branch\n"
+ " b ._341\n"
+ "._336:\n"
+ " cmp r2, #0x3\n"
+ " bne ._341 @cond_branch\n"
+ "._338:\n"
+ " ldr r0, ._342\n"
+ "._333:\n"
+ " add r1, r5, #0\n"
+ " mov r2, #0x64\n"
+ " bl gScriptFuncs_End+0x5bc4\n"
+ " b ._341\n"
+ "._343:\n"
+ " .align 2, 0\n"
+ "._342:\n"
+ " .word gEnemyParty+0xc8\n"
+ "._337:\n"
+ " ldr r0, ._346\n"
+ " add r1, r5, #0\n"
+ " mov r2, #0x64\n"
+ " bl gScriptFuncs_End+0x5bc4\n"
+ "._341:\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " add r5, r5, r0\n"
+ " add r7, r7, #0x1c\n"
+ " add r4, r4, #0x1\n"
+ " cmp r4, #0x3\n"
+ " ble ._344 @cond_branch\n"
+ " ldr r4, ._346 + 4\n"
+ " add r0, r4, #0\n"
+ " bl shedinja_something\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0x64\n"
+ " bl shedinja_something\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0xc8\n"
+ " bl shedinja_something\n"
+ " mov r1, #0x96\n"
+ " lsl r1, r1, #0x1\n"
+ " add r0, r4, r1\n"
+ " bl shedinja_something\n"
+ " mov r7, #0xc8\n"
+ " lsl r7, r7, #0x1\n"
+ " add r0, r4, r7\n"
+ " bl shedinja_something\n"
+ " mov r1, #0xfa\n"
+ " lsl r1, r1, #0x1\n"
+ " add r0, r4, r1\n"
+ " bl shedinja_something\n"
+ " ldr r4, ._346 + 8\n"
+ " add r0, r4, #0\n"
+ " bl shedinja_something\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0x64\n"
+ " bl shedinja_something\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0xc8\n"
+ " bl shedinja_something\n"
+ " sub r7, r7, #0x64\n"
+ " add r0, r4, r7\n"
+ " bl shedinja_something\n"
+ " mov r1, #0xc8\n"
+ " lsl r1, r1, #0x1\n"
+ " add r0, r4, r1\n"
+ " bl shedinja_something\n"
+ " add r7, r7, #0xc8\n"
+ " add r0, r4, r7\n"
+ " bl shedinja_something\n"
+ "._300:\n"
+ " ldr r1, ._346 + 12\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " b ._352\n"
+ "._347:\n"
+ " .align 2, 0\n"
+ "._346:\n"
+ " .word gEnemyParty+0x1f4\n"
+ " .word gPlayerParty\n"
+ " .word gEnemyParty\n"
+ " .word gBattleCommunication\n"
+ "._197:\n"
+ " bl sub_800B950\n"
+ " ldr r0, ._349\n"
+ " ldrb r1, [r0]\n"
+ " add r1, r1, #0x1\n"
+ " mov r2, #0x0\n"
+ " strb r1, [r0]\n"
+ " strb r2, [r0, #0x1]\n"
+ " strb r2, [r0, #0x2]\n"
+ " b ._352\n"
+ "._350:\n"
+ " .align 2, 0\n"
+ "._349:\n"
+ " .word gBattleCommunication\n"
+ "._198:\n"
+ " ldr r0, ._353\n"
+ " add r1, r0, #1\n"
+ " bl battle_load_something\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._352 @cond_branch\n"
+ " ldr r2, ._353 + 4\n"
+ " ldr r1, ._353 + 8\n"
+ " ldr r0, [r1]\n"
+ " str r0, [r2]\n"
+ " ldr r0, ._353 + 12\n"
+ " str r0, [r1]\n"
+ " ldr r0, ._353 + 16\n"
+ " bl SetMainCallback2\n"
+ " ldr r3, ._353 + 20\n"
+ " ldrh r2, [r3]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._352 @cond_branch\n"
+ " ldr r1, ._353 + 24\n"
+ " mov r4, #0x80\n"
+ " lsl r4, r4, #0x4\n"
+ " add r0, r4, #0\n"
+ " strh r0, [r1]\n"
+ " mov r0, #0x20\n"
+ " orr r0, r0, r2\n"
+ " strh r0, [r3]\n"
+ "._352:\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._354:\n"
+ " .align 2, 0\n"
+ "._353:\n"
+ " .word gUnknown_02024D1F\n"
+ " .word gPreBattleCallback1\n"
+ " .word gMain\n"
+ " .word debug_sub_80139E4+1\n"
+ " .word sub_800F808+1\n"
+ " .word gBattleTypeFlags\n"
+ " .word gTrainerBattleOpponent\n"
+ "\n"
+ );
+}
+#else
void sub_800F298(void)
{
u8 playerId;
@@ -893,7 +2587,119 @@ void sub_800F298(void)
break;
}
}
+#endif
+#if DEBUG
+__attribute__((naked))
+void BattleMainCB2(void)
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " bl AnimateSprites\n"
+ " bl BuildOamBuffer\n"
+ " ldr r4, ._358\n"
+ " ldrh r2, [r4, #0x2c]\n"
+ " mov r1, #0x82\n"
+ " lsl r1, r1, #0x1\n"
+ " add r0, r1, #0\n"
+ " and r0, r0, r2\n"
+ " cmp r0, r1\n"
+ " bne ._357 @cond_branch\n"
+ " ldr r2, ._358 + 4\n"
+ " ldr r1, ._358 + 8\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " mov r0, #0x1\n"
+ " strh r0, [r2]\n"
+ " ldr r0, ._358 + 12\n"
+ " add r2, r4, r0\n"
+ " ldrb r1, [r2]\n"
+ " mov r0, #0x3\n"
+ " neg r0, r0\n"
+ " and r0, r0, r1\n"
+ " strb r0, [r2]\n"
+ " ldr r1, ._358 + 16\n"
+ " mov r0, #0x3\n"
+ " strb r0, [r1, #0x15]\n"
+ " ldr r0, ._358 + 20\n"
+ " ldr r0, [r0]\n"
+ " str r0, [r4]\n"
+ " bl ZeroEnemyPartyMons\n"
+ " mov r0, #0x5a\n"
+ " bl gScriptFuncs_End+0x148c\n"
+ " ldr r0, ._358 + 24\n"
+ " ldrh r1, [r0]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._356 @cond_branch\n"
+ " ldr r0, ._358 + 28\n"
+ " bl SetMainCallback2\n"
+ " b ._357\n"
+ "._359:\n"
+ " .align 2, 0\n"
+ "._358:\n"
+ " .word gMain\n"
+ " .word gScriptResult\n"
+ " .word gBattleOutcome\n"
+ " .word 0x43d\n"
+ " .word gUnknown_03004DC0\n"
+ " .word gPreBattleCallback1\n"
+ " .word gBattleTypeFlags\n"
+ " .word sub_805465C+1\n"
+ "._356:\n"
+ " ldr r0, [r4, #0x8]\n"
+ " bl SetMainCallback2\n"
+ "._357:\n"
+ " ldr r5, ._361\n"
+ " ldrh r1, [r5]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._360 @cond_branch\n"
+ " lsr r0, r1, #0x2\n"
+ " mov r4, #0x1\n"
+ " and r0, r0, r4\n"
+ " str r4, [sp]\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x1\n"
+ " bl debug_sub_8008264\n"
+ " ldrh r0, [r5]\n"
+ " lsr r0, r0, #0x2\n"
+ " and r0, r0, r4\n"
+ " str r4, [sp]\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x15\n"
+ " mov r3, #0x1\n"
+ " bl debug_sub_8008264\n"
+ " ldrh r0, [r5]\n"
+ " lsr r0, r0, #0x2\n"
+ " and r0, r0, r4\n"
+ " str r4, [sp]\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x29\n"
+ " mov r3, #0x1\n"
+ " bl debug_sub_8008264\n"
+ "._360:\n"
+ " ldr r0, ._361 + 4\n"
+ " bl sub_800374C\n"
+ " bl UpdatePaletteFade\n"
+ " bl RunTasks\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._362:\n"
+ " .align 2, 0\n"
+ "._361:\n"
+ " .word gBattleTypeFlags\n"
+ " .word gUnknown_03004210\n"
+ "\n"
+ );
+}
+#else
void BattleMainCB2(void)
{
AnimateSprites();
@@ -902,6 +2708,7 @@ void BattleMainCB2(void)
UpdatePaletteFade();
RunTasks();
}
+#endif
void sub_800F828(struct Sprite *sprite)
{
@@ -1275,6 +3082,5525 @@ void c2_081284E0(void)
}
}
+// A LOT of debug code!
+#if DEBUG
+__attribute__((naked))
+void debug_sub_8010800()
+{
+ asm(
+ " push {lr}\n"
+ " bl debug_sub_8010818\n"
+ " bl debug_sub_80108B8\n"
+ " ldr r1, ._496\n"
+ " mov r0, #0x0\n"
+ " str r0, [r1]\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._497:\n"
+ " .align 2, 0\n"
+ "._496:\n"
+ " .word gBattleBuffersTransferData+0x100\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8010818()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " ldr r1, ._501\n"
+ " ldr r0, ._501 + 4\n"
+ " strh r0, [r1]\n"
+ " add r2, r1, #0\n"
+ " add r2, r2, #0x46\n"
+ " strh r0, [r2]\n"
+ " ldr r0, ._501 + 8\n"
+ " add r4, r1, #0\n"
+ " add r4, r4, #0x48\n"
+ " add r3, r0, #0\n"
+ " add r3, r3, #0x12\n"
+ " add r2, r1, #2\n"
+ " mov r1, #0x1d\n"
+ "._498:\n"
+ " ldrh r0, [r3]\n"
+ " strh r0, [r2]\n"
+ " strh r0, [r4]\n"
+ " add r4, r4, #0x2\n"
+ " add r3, r3, #0xa\n"
+ " add r2, r2, #0x2\n"
+ " sub r1, r1, #0x1\n"
+ " cmp r1, #0\n"
+ " bge ._498 @cond_branch\n"
+ " mov r1, #0x0\n"
+ " ldr r4, ._501 + 12\n"
+ " ldr r7, ._501 + 16\n"
+ " ldr r6, ._501 + 20\n"
+ " mov r0, #0x30\n"
+ " add r0, r0, r7\n"
+ " mov ip, r0\n"
+ "._500:\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r4]\n"
+ " add r5, r1, #1\n"
+ " lsl r3, r1, #0x3\n"
+ "._499:\n"
+ " ldrb r2, [r4]\n"
+ " lsl r1, r2, #0x1\n"
+ " add r1, r1, r3\n"
+ " add r1, r1, r7\n"
+ " lsl r0, r2, #0x2\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r0, r6\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ " ldrb r2, [r4]\n"
+ " lsl r1, r2, #0x1\n"
+ " add r1, r1, r3\n"
+ " add r1, r1, ip\n"
+ " lsl r0, r2, #0x2\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r0, r6\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ " ldrb r0, [r4]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r4]\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x3\n"
+ " bls ._499 @cond_branch\n"
+ " add r1, r5, #0\n"
+ " cmp r1, #0x5\n"
+ " ble ._500 @cond_branch\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._502:\n"
+ " .align 2, 0\n"
+ "._501:\n"
+ " .word gUnknown_02023A14+0x52\n"
+ " .word 0x115\n"
+ " .word UnkDebug0+0x6c\n"
+ " .word gUnknown_Debug_030043A8\n"
+ " .word gUnknown_02023A14+0xde\n"
+ " .word UnkDebug0+0x1b4\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_80108B8()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " bl gScriptFuncs_End+0x19f4\n"
+ " mov r0, #0x0\n"
+ " bl SetHBlankCallback\n"
+ " mov r0, #0x0\n"
+ " bl SetVBlankCallback\n"
+ " mov r3, #0x0\n"
+ " str r3, [sp]\n"
+ " ldr r2, ._507\n"
+ " mov r0, sp\n"
+ " str r0, [r2]\n"
+ " mov r1, #0xc0\n"
+ " lsl r1, r1, #0x13\n"
+ " str r1, [r2, #0x4]\n"
+ " ldr r0, ._507 + 4\n"
+ " str r0, [r2, #0x8]\n"
+ " ldr r0, [r2, #0x8]\n"
+ " ldr r2, ._507 + 8\n"
+ " mov r0, #0x1\n"
+ " strh r0, [r2]\n"
+ " mov r2, #0x80\n"
+ " lsl r2, r2, #0x13\n"
+ " mov r4, #0x9a\n"
+ " lsl r4, r4, #0x5\n"
+ " add r0, r4, #0\n"
+ " strh r0, [r2]\n"
+ " ldr r0, ._507 + 12\n"
+ " mov r5, #0x0\n"
+ " strh r3, [r0]\n"
+ " ldr r0, ._507 + 16\n"
+ " strh r3, [r0]\n"
+ " ldr r0, ._507 + 20\n"
+ " strh r3, [r0]\n"
+ " ldr r0, ._507 + 24\n"
+ " strh r3, [r0]\n"
+ " ldr r0, ._507 + 28\n"
+ " strh r3, [r0]\n"
+ " ldr r0, ._507 + 32\n"
+ " strh r3, [r0]\n"
+ " ldr r0, ._507 + 36\n"
+ " strh r3, [r0]\n"
+ " ldr r0, ._507 + 40\n"
+ " strh r3, [r0]\n"
+ " add r2, r2, #0x8\n"
+ " ldr r4, ._507 + 44\n"
+ " add r0, r4, #0\n"
+ " strh r0, [r2]\n"
+ " add r2, r2, #0x2\n"
+ " ldr r4, ._507 + 48\n"
+ " add r0, r4, #0\n"
+ " strh r0, [r2]\n"
+ " ldr r0, ._507 + 52\n"
+ " strh r3, [r0]\n"
+ " add r0, r0, #0x4\n"
+ " strh r3, [r0]\n"
+ " ldr r0, ._507 + 56\n"
+ " bl LZDecompressVram\n"
+ " ldr r0, ._507 + 60\n"
+ " ldr r1, ._507 + 64\n"
+ " bl sub_800D238\n"
+ " ldr r4, ._507 + 68\n"
+ " mov r1, #0xa0\n"
+ " lsl r1, r1, #0x13\n"
+ " add r0, r4, #0\n"
+ " bl LZDecompressVram\n"
+ " ldr r1, ._507 + 72\n"
+ " add r0, r4, #0\n"
+ " bl LZDecompressVram\n"
+ " bl gScriptFuncs_End+0x1a70\n"
+ " ldr r0, ._507 + 76\n"
+ " bl SetVBlankCallback\n"
+ " ldr r0, ._507 + 80\n"
+ " bl SetMainCallback2\n"
+ " bl ResetTasks\n"
+ " bl ResetSpriteData\n"
+ " bl remove_some_task\n"
+ " ldr r4, ._507 + 84\n"
+ " add r0, r4, #0\n"
+ " bl SetUpWindowConfig\n"
+ " ldr r0, ._507 + 88\n"
+ " add r1, r4, #0\n"
+ " bl InitWindowFromConfig\n"
+ " ldr r0, ._507 + 92\n"
+ " strb r5, [r0]\n"
+ " ldr r0, ._507 + 96\n"
+ " strb r5, [r0]\n"
+ " ldr r0, ._507 + 100\n"
+ " strb r5, [r0]\n"
+ " mov r4, #0x0\n"
+ "._503:\n"
+ " lsl r0, r4, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_8011EA0\n"
+ " add r4, r4, #0x1\n"
+ " cmp r4, #0x1e\n"
+ " ble ._503 @cond_branch\n"
+ " ldr r1, ._507 + 104\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ " add r4, r1, #0\n"
+ "._504:\n"
+ " bl debug_sub_8012294\n"
+ " ldrb r0, [r4]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r4]\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x3\n"
+ " bls ._504 @cond_branch\n"
+ " ldr r0, ._507 + 100\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_80123D8\n"
+ " bl debug_sub_8012540\n"
+ " bl debug_nullsub_3\n"
+ " ldr r1, ._507 + 104\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ " bl debug_sub_80125A0\n"
+ " ldr r0, ._507 + 108\n"
+ " add r0, r0, #0x44\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r0, r1]\n"
+ " cmp r0, #0x8\n"
+ " bne ._505 @cond_branch\n"
+ " bl debug_sub_801174C\n"
+ " b ._506\n"
+ "._508:\n"
+ " .align 2, 0\n"
+ "._507:\n"
+ " .word 0x40000d4\n"
+ " .word 0x85006000\n"
+ " .word 0x4000200\n"
+ " .word gUnknown_030042A4\n"
+ " .word gUnknown_030042A0\n"
+ " .word gUnknown_030042C0\n"
+ " .word gUnknown_030041B4\n"
+ " .word gUnknown_03004288\n"
+ " .word gUnknown_03004280\n"
+ " .word gUnknown_030041B0\n"
+ " .word gUnknown_030041B8\n"
+ " .word 0x1f09\n"
+ " .word 0x4801\n"
+ " .word 0x4000050\n"
+ " .word gMonShinyPalette_CircledQuestionMark+0x18\n"
+ " .word gMonShinyPalette_CircledQuestionMark+0x834\n"
+ " .word +0x2000000\n"
+ " .word gMonShinyPalette_CircledQuestionMark+0xa8c\n"
+ " .word 0x50001e0\n"
+ " .word debug_sub_8011D40+1\n"
+ " .word debug_sub_8010CAC+1\n"
+ " .word gWindowConfig_81E6C3C\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word gUnknown_Debug_030043A0\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gUnknown_Debug_030043A8\n"
+ " .word gUnknown_02023A14+0x52\n"
+ "._505:\n"
+ " ldr r0, ._510\n"
+ " mov r1, #0x0\n"
+ " mov r4, #0x7\n"
+ " ldr r2, ._510 + 4\n"
+ " add r0, r0, r2\n"
+ "._509:\n"
+ " strb r1, [r0]\n"
+ " sub r0, r0, #0x1\n"
+ " sub r4, r4, #0x1\n"
+ " cmp r4, #0\n"
+ " bge ._509 @cond_branch\n"
+ "._506:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._511:\n"
+ " .align 2, 0\n"
+ "._510:\n"
+ " .word +0x2000000\n"
+ " .word 0x160bb\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8010A7C()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r2, r1, #0x18\n"
+ " mov r1, #0x0\n"
+ " ldr r5, ._514\n"
+ " cmp r1, r2\n"
+ " bge ._512 @cond_branch\n"
+ " add r3, r5, #0\n"
+ "._513:\n"
+ " add r0, r1, r3\n"
+ " strb r4, [r0]\n"
+ " add r1, r1, #0x1\n"
+ " cmp r1, r2\n"
+ " blt ._513 @cond_branch\n"
+ "._512:\n"
+ " add r1, r1, r5\n"
+ " mov r0, #0xff\n"
+ " strb r0, [r1]\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._515:\n"
+ " .align 2, 0\n"
+ "._514:\n"
+ " .word gBattleTextBuff1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8010AAC()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov ip, r0\n"
+ " ldr r6, ._520\n"
+ " ldr r4, ._520 + 4\n"
+ " ldr r5, ._520 + 8\n"
+ " ldrb r1, [r5]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r7, r0, r1\n"
+ " lsl r1, r7, #0x1\n"
+ " ldr r3, ._520 + 12\n"
+ " ldrb r2, [r3]\n"
+ " mov r0, #0x46\n"
+ " mul r2, r2, r0\n"
+ " add r1, r1, r2\n"
+ " add r1, r1, r4\n"
+ " mov r0, #0x0\n"
+ " ldsh r1, [r1, r0]\n"
+ " lsl r0, r1, #0x3\n"
+ " sub r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r6\n"
+ " ldrb r0, [r0, #0x10]\n"
+ " add r6, r3, #0\n"
+ " cmp r0, #0xfe\n"
+ " beq ._516 @cond_branch\n"
+ " cmp r0, #0xfe\n"
+ " bgt ._517 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._518 @cond_branch\n"
+ " b ._523\n"
+ "._521:\n"
+ " .align 2, 0\n"
+ "._520:\n"
+ " .word gBaseStats\n"
+ " .word gUnknown_02023A14+0x52\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gUnknown_Debug_03004360\n"
+ "._517:\n"
+ " cmp r0, #0xff\n"
+ " beq ._522 @cond_branch\n"
+ " b ._523\n"
+ "._518:\n"
+ " add r0, r7, #4\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r0, r2\n"
+ " add r0, r0, r4\n"
+ " mov r1, #0x2\n"
+ " b ._528\n"
+ "._516:\n"
+ " add r0, r7, #4\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r0, r2\n"
+ " add r0, r0, r4\n"
+ " mov r1, #0x3\n"
+ " b ._528\n"
+ "._522:\n"
+ " add r0, r7, #4\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r0, r2\n"
+ " add r0, r0, r4\n"
+ " mov r1, #0x4\n"
+ " b ._528\n"
+ "._523:\n"
+ " ldrb r0, [r5]\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " add r1, r1, #0x4\n"
+ " lsl r1, r1, #0x1\n"
+ " ldrb r0, [r6]\n"
+ " mov r3, #0x46\n"
+ " mul r0, r0, r3\n"
+ " add r1, r1, r0\n"
+ " add r1, r1, r4\n"
+ " ldrh r2, [r1]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r2\n"
+ " strh r0, [r1]\n"
+ " mov r1, ip\n"
+ " cmp r1, #0\n"
+ " beq ._527 @cond_branch\n"
+ " ldrb r1, [r5]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " add r0, r0, #0x4\n"
+ " lsl r0, r0, #0x1\n"
+ " ldrb r1, [r6]\n"
+ " mul r1, r1, r3\n"
+ " add r0, r0, r1\n"
+ " add r0, r0, r4\n"
+ " ldrh r1, [r0]\n"
+ " mov r2, #0x1\n"
+ " eor r1, r1, r2\n"
+ " b ._528\n"
+ "._527:\n"
+ " ldrb r1, [r5]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " add r0, r0, #0x4\n"
+ " lsl r0, r0, #0x1\n"
+ " ldrb r1, [r6]\n"
+ " mul r1, r1, r3\n"
+ " add r0, r0, r1\n"
+ " add r0, r0, r4\n"
+ " mov r1, ip\n"
+ "._528:\n"
+ " strh r1, [r0]\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8010B80()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r9\n"
+ " mov r6, r8\n"
+ " push {r6, r7}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " mov r0, #0x0\n"
+ " mov ip, r0\n"
+ " ldr r4, ._534\n"
+ " ldr r1, ._534 + 4\n"
+ " mov r8, r1\n"
+ " ldr r5, ._534 + 8\n"
+ " ldrb r1, [r5]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " mov r2, r8\n"
+ " ldrb r2, [r2]\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x1\n"
+ " ldr r3, ._534 + 12\n"
+ " ldrb r2, [r3]\n"
+ " mov r1, #0x46\n"
+ " mul r1, r1, r2\n"
+ " add r0, r0, r1\n"
+ " add r0, r0, r4\n"
+ " ldrb r7, [r0]\n"
+ " lsl r1, r7, #0x18\n"
+ " asr r0, r1, #0x18\n"
+ " mov r9, r4\n"
+ " add r2, r5, #0\n"
+ " add r4, r3, #0\n"
+ " cmp r0, #0x9\n"
+ " ble ._529 @cond_branch\n"
+ "._530:\n"
+ " mov r3, #0xf6\n"
+ " lsl r3, r3, #0x18\n"
+ " add r0, r1, r3\n"
+ " lsr r7, r0, #0x18\n"
+ " mov r1, ip\n"
+ " lsl r0, r1, #0x18\n"
+ " mov r3, #0x80\n"
+ " lsl r3, r3, #0x11\n"
+ " add r0, r0, r3\n"
+ " lsr r0, r0, #0x18\n"
+ " mov ip, r0\n"
+ " lsl r1, r7, #0x18\n"
+ " asr r0, r1, #0x18\n"
+ " cmp r0, #0x9\n"
+ " bgt ._530 @cond_branch\n"
+ "._529:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r6\n"
+ " cmp r0, #0\n"
+ " beq ._531 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r6\n"
+ " cmp r0, #0\n"
+ " beq ._532 @cond_branch\n"
+ " mov r1, ip\n"
+ " lsl r0, r1, #0x18\n"
+ " mov r3, #0x80\n"
+ " lsl r3, r3, #0x11\n"
+ " b ._533\n"
+ "._535:\n"
+ " .align 2, 0\n"
+ "._534:\n"
+ " .word gUnknown_02023A14+0x52\n"
+ " .word gUnknown_Debug_030043A0\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gUnknown_Debug_03004360\n"
+ "._532:\n"
+ " mov r1, ip\n"
+ " lsl r0, r1, #0x18\n"
+ " mov r3, #0xff\n"
+ " lsl r3, r3, #0x18\n"
+ "._533:\n"
+ " add r0, r0, r3\n"
+ " lsr r0, r0, #0x18\n"
+ " mov ip, r0\n"
+ " mov r1, ip\n"
+ " lsl r0, r1, #0x18\n"
+ " cmp r0, #0\n"
+ " bge ._536 @cond_branch\n"
+ " mov r3, #0x9\n"
+ " mov ip, r3\n"
+ "._536:\n"
+ " mov r1, ip\n"
+ " lsl r0, r1, #0x18\n"
+ " asr r0, r0, #0x18\n"
+ " cmp r0, #0x9\n"
+ " ble ._542 @cond_branch\n"
+ " mov r3, #0x0\n"
+ " mov ip, r3\n"
+ " b ._542\n"
+ "._531:\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r6\n"
+ " cmp r0, #0\n"
+ " beq ._539 @cond_branch\n"
+ " lsl r0, r7, #0x18\n"
+ " mov r1, #0x80\n"
+ " lsl r1, r1, #0x11\n"
+ " add r0, r0, r1\n"
+ " b ._540\n"
+ "._539:\n"
+ " lsl r0, r7, #0x18\n"
+ " mov r3, #0xff\n"
+ " lsl r3, r3, #0x18\n"
+ " add r0, r0, r3\n"
+ "._540:\n"
+ " lsr r7, r0, #0x18\n"
+ " lsl r0, r7, #0x18\n"
+ " cmp r0, #0\n"
+ " bgt ._541 @cond_branch\n"
+ " mov r7, #0x9\n"
+ "._541:\n"
+ " lsl r0, r7, #0x18\n"
+ " asr r0, r0, #0x18\n"
+ " cmp r0, #0x9\n"
+ " ble ._542 @cond_branch\n"
+ " mov r7, #0x1\n"
+ "._542:\n"
+ " ldrb r0, [r2]\n"
+ " lsl r2, r0, #0x2\n"
+ " add r2, r2, r0\n"
+ " mov r0, r8\n"
+ " ldrb r0, [r0]\n"
+ " add r2, r2, r0\n"
+ " lsl r2, r2, #0x1\n"
+ " ldrb r1, [r4]\n"
+ " mov r0, #0x1\n"
+ " eor r0, r0, r1\n"
+ " mov r1, #0x46\n"
+ " add r3, r0, #0\n"
+ " mul r3, r3, r1\n"
+ " add r3, r2, r3\n"
+ " add r3, r3, r9\n"
+ " ldrb r0, [r4]\n"
+ " mul r0, r0, r1\n"
+ " add r2, r2, r0\n"
+ " add r2, r2, r9\n"
+ " mov r1, ip\n"
+ " lsl r0, r1, #0x18\n"
+ " asr r0, r0, #0x18\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x1\n"
+ " lsl r0, r7, #0x18\n"
+ " asr r0, r0, #0x18\n"
+ " add r0, r0, r1\n"
+ " strh r0, [r2]\n"
+ " strh r0, [r3]\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"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8010CAC()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " add sp, sp, #0xfffffff0\n"
+ " ldr r4, ._553\n"
+ " ldrh r1, [r4, #0x28]\n"
+ " mov r0, #0x81\n"
+ " lsl r0, r0, #0x2\n"
+ " cmp r1, r0\n"
+ " bne ._543 @cond_branch\n"
+ " bl DoSoftReset\n"
+ "._543:\n"
+ " ldrh r0, [r4, #0x2a]\n"
+ " cmp r0, #0x4\n"
+ " beq ._544 @cond_branch\n"
+ " b ._559\n"
+ "._544:\n"
+ " ldr r0, ._553 + 4\n"
+ " ldrb r1, [r0]\n"
+ " mov r8, r0\n"
+ " cmp r1, #0x5\n"
+ " bhi ._546 @cond_branch\n"
+ " ldr r0, ._553 + 8\n"
+ " mov r1, #0x0\n"
+ " strb r1, [r0]\n"
+ " bl debug_sub_8012628\n"
+ " ldr r0, ._553 + 12\n"
+ " bl SetMainCallback2\n"
+ "._546:\n"
+ " ldr r0, ._553 + 16\n"
+ " ldrb r3, [r0]\n"
+ " cmp r3, #0\n"
+ " bne ._555 @cond_branch\n"
+ " mov r1, r8\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0x6\n"
+ " bne ._555 @cond_branch\n"
+ " ldr r0, ._553 + 20\n"
+ " str r0, [r4, #0x8]\n"
+ " ldr r4, ._553 + 24\n"
+ " ldr r0, ._553 + 28\n"
+ " ldrh r1, [r0]\n"
+ " ldrb r2, [r0, #0x2]\n"
+ " str r3, [sp]\n"
+ " str r3, [sp, #0x4]\n"
+ " str r3, [sp, #0x8]\n"
+ " str r3, [sp, #0xc]\n"
+ " add r0, r4, #0\n"
+ " mov r3, #0x20\n"
+ " bl CreateMon\n"
+ " mov r5, #0x0\n"
+ " add r6, r4, #0\n"
+ "._549:\n"
+ " add r1, r5, #0\n"
+ " add r1, r1, #0xd\n"
+ " lsl r4, r5, #0x1\n"
+ " ldr r0, ._553 + 32\n"
+ " add r4, r4, r0\n"
+ " add r0, r6, #0\n"
+ " add r2, r4, #0\n"
+ " bl SetMonData\n"
+ " add r1, r5, #0\n"
+ " add r1, r1, #0x11\n"
+ " mov r2, #0x0\n"
+ " ldsh r0, [r4, r2]\n"
+ " lsl r2, r0, #0x1\n"
+ " add r2, r2, r0\n"
+ " lsl r2, r2, #0x2\n"
+ " ldr r0, ._553 + 36\n"
+ " add r2, r2, r0\n"
+ " add r0, r6, #0\n"
+ " bl SetMonData\n"
+ " add r5, r5, #0x1\n"
+ " cmp r5, #0x3\n"
+ " ble ._549 @cond_branch\n"
+ " ldr r2, ._553 + 28\n"
+ " mov r4, #0x3c\n"
+ " ldsh r0, [r2, r4]\n"
+ " cmp r0, #0x1\n"
+ " beq ._550 @cond_branch\n"
+ " cmp r0, #0x2\n"
+ " beq ._551 @cond_branch\n"
+ " b ._555\n"
+ "._554:\n"
+ " .align 2, 0\n"
+ "._553:\n"
+ " .word gMain\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gUnknown_Debug_030043A8\n"
+ " .word debug_sub_8011498+1\n"
+ " .word gUnknown_Debug_030043A0\n"
+ " .word debug_sub_80108B8+1\n"
+ " .word gPlayerParty\n"
+ " .word gUnknown_02023A14+0x52\n"
+ " .word gUnknown_02023A14+0xde\n"
+ " .word gBattleMoves+0x4\n"
+ "._550:\n"
+ " ldr r1, ._556\n"
+ " ldr r0, ._556 + 4\n"
+ " str r0, [r1]\n"
+ " ldr r0, ._556 + 8\n"
+ " ldrh r1, [r2, #0xa]\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x0\n"
+ " bl EvolutionScene\n"
+ " b ._555\n"
+ "._557:\n"
+ " .align 2, 0\n"
+ "._556:\n"
+ " .word gUnknown_03005E94\n"
+ " .word debug_sub_80108B8+1\n"
+ " .word gPlayerParty\n"
+ "._551:\n"
+ " bl debug_sub_8012688\n"
+ "._555:\n"
+ " ldr r0, ._565\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0x1\n"
+ " bne ._559 @cond_branch\n"
+ " ldr r0, ._565 + 4\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0x6\n"
+ " bne ._559 @cond_branch\n"
+ " ldr r3, ._565 + 8\n"
+ " ldrb r2, [r3, #0x15]\n"
+ " lsl r0, r2, #0x1d\n"
+ " lsr r5, r0, #0x1f\n"
+ " lsl r0, r2, #0x1f\n"
+ " lsr r0, r0, #0x1f\n"
+ " lsl r0, r0, #0x1\n"
+ " orr r5, r5, r0\n"
+ " add r5, r5, #0x1\n"
+ " cmp r5, #0x4\n"
+ " bne ._560 @cond_branch\n"
+ " mov r5, #0x0\n"
+ "._560:\n"
+ " mov r0, #0x1\n"
+ " add r1, r5, #0\n"
+ " and r1, r1, r0\n"
+ " lsl r1, r1, #0x2\n"
+ " mov r0, #0x5\n"
+ " neg r0, r0\n"
+ " and r0, r0, r2\n"
+ " orr r0, r0, r1\n"
+ " mov r1, #0x2\n"
+ " and r5, r5, r1\n"
+ " lsr r2, r5, #0x1\n"
+ " sub r1, r1, #0x4\n"
+ " and r0, r0, r1\n"
+ " orr r0, r0, r2\n"
+ " strb r0, [r3, #0x15]\n"
+ " lsl r0, r0, #0x1f\n"
+ " lsr r0, r0, #0x1f\n"
+ " bl gScriptFuncs_End+0x2aa0\n"
+ " bl debug_nullsub_3\n"
+ "._559:\n"
+ " ldr r4, ._565 + 12\n"
+ " ldrh r0, [r4, #0x2a]\n"
+ " cmp r0, #0x8\n"
+ " bne ._561 @cond_branch\n"
+ " bl debug_sub_801174C\n"
+ "._561:\n"
+ " ldrh r0, [r4, #0x2a]\n"
+ " cmp r0, #0x40\n"
+ " bne ._562 @cond_branch\n"
+ " bl debug_sub_80125E4\n"
+ " ldr r1, ._565 + 4\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " beq ._563 @cond_branch\n"
+ " sub r0, r0, #0x1\n"
+ " b ._564\n"
+ "._566:\n"
+ " .align 2, 0\n"
+ "._565:\n"
+ " .word gUnknown_Debug_030043A0\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gSaveBlock2\n"
+ " .word gMain\n"
+ "._563:\n"
+ " mov r0, #0x6\n"
+ "._564:\n"
+ " strb r0, [r1]\n"
+ " bl debug_sub_8011E74\n"
+ " ldr r0, ._570\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_80123D8\n"
+ " bl debug_sub_80125A0\n"
+ "._562:\n"
+ " ldr r0, ._570 + 4\n"
+ " ldrh r0, [r0, #0x2a]\n"
+ " cmp r0, #0x80\n"
+ " bne ._567 @cond_branch\n"
+ " bl debug_sub_80125E4\n"
+ " ldr r1, ._570\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0x6\n"
+ " bne ._568 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._569\n"
+ "._571:\n"
+ " .align 2, 0\n"
+ "._570:\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gMain\n"
+ "._568:\n"
+ " add r0, r0, #0x1\n"
+ "._569:\n"
+ " strb r0, [r1]\n"
+ " bl debug_sub_8011E74\n"
+ " ldr r0, ._575\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_80123D8\n"
+ " bl debug_sub_80125A0\n"
+ "._567:\n"
+ " ldr r0, ._575 + 4\n"
+ " ldrh r0, [r0, #0x2a]\n"
+ " cmp r0, #0x20\n"
+ " bne ._572 @cond_branch\n"
+ " bl debug_sub_80125E4\n"
+ " ldr r2, ._575 + 8\n"
+ " ldrb r0, [r2]\n"
+ " add r1, r0, #0\n"
+ " cmp r1, #0\n"
+ " beq ._573 @cond_branch\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r2]\n"
+ " b ._577\n"
+ "._576:\n"
+ " .align 2, 0\n"
+ "._575:\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gMain\n"
+ " .word gUnknown_Debug_030043A0\n"
+ "._573:\n"
+ " ldr r3, ._581\n"
+ " ldrb r0, [r3]\n"
+ " cmp r0, #0\n"
+ " beq ._577 @cond_branch\n"
+ " strb r1, [r3]\n"
+ " mov r0, #0x4\n"
+ " strb r0, [r2]\n"
+ " ldr r0, ._581 + 4\n"
+ " strh r1, [r0]\n"
+ " bl debug_sub_8011E5C\n"
+ " bl debug_sub_8011E74\n"
+ " ldr r0, ._581 + 8\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_80123D8\n"
+ "._577:\n"
+ " bl debug_sub_80125A0\n"
+ "._572:\n"
+ " ldr r0, ._581 + 12\n"
+ " ldrh r0, [r0, #0x2a]\n"
+ " cmp r0, #0x10\n"
+ " bne ._578 @cond_branch\n"
+ " bl debug_sub_80125E4\n"
+ " ldr r2, ._581 + 16\n"
+ " ldrb r0, [r2]\n"
+ " cmp r0, #0x4\n"
+ " beq ._579 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r2]\n"
+ " b ._583\n"
+ "._582:\n"
+ " .align 2, 0\n"
+ "._581:\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word gUnknown_030042C0\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gMain\n"
+ " .word gUnknown_Debug_030043A0\n"
+ "._579:\n"
+ " ldr r3, ._587\n"
+ " ldrb r1, [r3]\n"
+ " cmp r1, #0\n"
+ " bne ._583 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r3]\n"
+ " strb r1, [r2]\n"
+ " ldr r1, ._587 + 4\n"
+ " mov r2, #0x80\n"
+ " lsl r2, r2, #0x1\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " bl debug_sub_8011E5C\n"
+ " bl debug_sub_8011E74\n"
+ " ldr r0, ._587 + 8\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_80123D8\n"
+ "._583:\n"
+ " bl debug_sub_80125A0\n"
+ "._578:\n"
+ " ldr r0, ._587 + 12\n"
+ " ldrh r1, [r0, #0x30]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._584 @cond_branch\n"
+ " b ._607\n"
+ "._584:\n"
+ " ldr r0, ._587 + 16\n"
+ " ldrb r2, [r0]\n"
+ " ldr r0, ._587 + 8\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " add r0, r2, r0\n"
+ " sub r0, r0, #0x1e\n"
+ " cmp r0, #0x4\n"
+ " bhi ._586 @cond_branch\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._587 + 20\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov pc, r0\n"
+ "._588:\n"
+ " .align 2, 0\n"
+ "._587:\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word gUnknown_030042C0\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gMain\n"
+ " .word gUnknown_Debug_030043A0\n"
+ " .word ._589\n"
+ "._589:\n"
+ " .word ._590\n"
+ " .word ._591\n"
+ " .word ._592\n"
+ " .word ._593\n"
+ " .word ._594\n"
+ "._591:\n"
+ " bl debug_sub_8010818\n"
+ " b ._595\n"
+ "._592:\n"
+ " ldr r1, ._597\n"
+ " mov r0, #0x1f\n"
+ " mov r2, #0xec\n"
+ " bl debug_sub_80132C8\n"
+ "._595:\n"
+ " bl debug_sub_8011E5C\n"
+ " bl debug_sub_8011E74\n"
+ " bl debug_sub_8012540\n"
+ " bl debug_nullsub_3\n"
+ " ldr r0, ._597 + 4\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_80123D8\n"
+ " b ._607\n"
+ "._598:\n"
+ " .align 2, 0\n"
+ "._597:\n"
+ " .word gUnknown_02023A14+0x52\n"
+ " .word gUnknown_Debug_030043A4\n"
+ "._593:\n"
+ " ldr r1, ._600\n"
+ " mov r0, #0x1f\n"
+ " mov r2, #0xec\n"
+ " bl debug_sub_8013294\n"
+ " b ._607\n"
+ "._601:\n"
+ " .align 2, 0\n"
+ "._600:\n"
+ " .word gUnknown_02023A14+0x52\n"
+ "._594:\n"
+ " ldr r3, ._604\n"
+ " add r2, r3, #0\n"
+ " add r2, r2, #0x44\n"
+ " ldrh r1, [r2]\n"
+ " mov r4, #0x0\n"
+ " ldsh r0, [r2, r4]\n"
+ " cmp r0, #0\n"
+ " beq ._602 @cond_branch\n"
+ " sub r0, r1, #1\n"
+ " strh r0, [r2]\n"
+ " add r1, r3, #0\n"
+ " add r1, r1, #0x8a\n"
+ " ldrh r0, [r1]\n"
+ " sub r0, r0, #0x1\n"
+ " strh r0, [r1]\n"
+ " b ._603\n"
+ "._605:\n"
+ " .align 2, 0\n"
+ "._604:\n"
+ " .word gUnknown_02023A14+0x52\n"
+ "._602:\n"
+ " mov r1, #0x8\n"
+ " strh r1, [r2]\n"
+ " add r0, r3, #0\n"
+ " add r0, r0, #0x8a\n"
+ " strh r1, [r0]\n"
+ "._603:\n"
+ " bl debug_sub_8012540\n"
+ " b ._607\n"
+ "._590:\n"
+ " mov r0, #0x0\n"
+ " bl debug_sub_8010B80\n"
+ " ldr r2, ._608\n"
+ " ldr r0, ._608 + 4\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldrb r2, [r2]\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_8011EA0\n"
+ " b ._607\n"
+ "._609:\n"
+ " .align 2, 0\n"
+ "._608:\n"
+ " .word gUnknown_Debug_030043A0\n"
+ " .word gUnknown_Debug_030043A4\n"
+ "._586:\n"
+ " cmp r2, #0x4\n"
+ " bne ._611 @cond_branch\n"
+ " cmp r1, #0x5\n"
+ " bhi ._611 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " bl debug_sub_8010AAC\n"
+ " b ._613\n"
+ "._611:\n"
+ " ldr r6, ._618\n"
+ " ldr r5, ._618 + 4\n"
+ " ldr r4, ._618 + 8\n"
+ " ldrb r0, [r4]\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " ldrb r0, [r5]\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x1\n"
+ " ldr r2, ._618 + 12\n"
+ " ldrb r0, [r2]\n"
+ " mov r3, #0x46\n"
+ " mul r0, r0, r3\n"
+ " add r1, r1, r0\n"
+ " add r1, r1, r6\n"
+ " ldrh r0, [r1]\n"
+ " sub r0, r0, #0x1\n"
+ " strh r0, [r1]\n"
+ " ldrb r0, [r4]\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " ldrb r5, [r5]\n"
+ " add r1, r1, r5\n"
+ " lsl r0, r1, #0x1\n"
+ " ldrb r2, [r2]\n"
+ " mul r2, r2, r3\n"
+ " add r0, r0, r2\n"
+ " add r3, r0, r6\n"
+ " mov r4, #0x0\n"
+ " ldsh r2, [r3, r4]\n"
+ " ldr r4, ._618 + 16\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r1, r0, #0x1\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0x8\n"
+ " add r0, r1, r0\n"
+ " ldrh r0, [r0]\n"
+ " cmp r2, r0\n"
+ " bge ._613 @cond_branch\n"
+ " add r0, r4, #6\n"
+ " add r0, r1, r0\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r3]\n"
+ "._613:\n"
+ " ldr r5, ._618 + 4\n"
+ " ldrb r0, [r5]\n"
+ " cmp r0, #0\n"
+ " bne ._614 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " bl debug_sub_8010AAC\n"
+ " ldr r0, ._618 + 8\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " add r0, r0, #0x4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_8011EA0\n"
+ "._614:\n"
+ " ldr r4, ._618 + 8\n"
+ " ldrb r1, [r4]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldrb r5, [r5]\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_8011EA0\n"
+ " ldrb r1, [r4]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_80123D8\n"
+ "._607:\n"
+ " ldr r0, ._618 + 20\n"
+ " ldrh r1, [r0, #0x30]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._615 @cond_branch\n"
+ " b ._638\n"
+ "._615:\n"
+ " ldr r0, ._618 + 4\n"
+ " ldrb r2, [r0]\n"
+ " ldr r0, ._618 + 8\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " add r0, r2, r0\n"
+ " sub r0, r0, #0x1e\n"
+ " cmp r0, #0x4\n"
+ " bhi ._617 @cond_branch\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._618 + 24\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov pc, r0\n"
+ "._619:\n"
+ " .align 2, 0\n"
+ "._618:\n"
+ " .word gUnknown_02023A14+0x52\n"
+ " .word gUnknown_Debug_030043A0\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word UnkDebug0+0x6c\n"
+ " .word gMain\n"
+ " .word ._620\n"
+ "._620:\n"
+ " .word ._621\n"
+ " .word ._622\n"
+ " .word ._623\n"
+ " .word ._624\n"
+ " .word ._625\n"
+ "._622:\n"
+ " bl debug_sub_8010818\n"
+ " b ._626\n"
+ "._623:\n"
+ " ldr r1, ._628\n"
+ " mov r0, #0x1f\n"
+ " mov r2, #0xec\n"
+ " bl debug_sub_80132C8\n"
+ "._626:\n"
+ " bl debug_sub_8011E5C\n"
+ " bl debug_sub_8011E74\n"
+ " bl debug_sub_8012540\n"
+ " bl debug_nullsub_3\n"
+ " ldr r0, ._628 + 4\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_80123D8\n"
+ " b ._638\n"
+ "._629:\n"
+ " .align 2, 0\n"
+ "._628:\n"
+ " .word gUnknown_02023A14+0x52\n"
+ " .word gUnknown_Debug_030043A4\n"
+ "._624:\n"
+ " ldr r1, ._631\n"
+ " mov r0, #0x1f\n"
+ " mov r2, #0xec\n"
+ " bl debug_sub_8013294\n"
+ " b ._638\n"
+ "._632:\n"
+ " .align 2, 0\n"
+ "._631:\n"
+ " .word gUnknown_02023A14+0x52\n"
+ "._625:\n"
+ " ldr r3, ._635\n"
+ " add r2, r3, #0\n"
+ " add r2, r2, #0x44\n"
+ " ldrh r1, [r2]\n"
+ " mov r4, #0x0\n"
+ " ldsh r0, [r2, r4]\n"
+ " cmp r0, #0x7\n"
+ " bgt ._633 @cond_branch\n"
+ " add r0, r1, #1\n"
+ " strh r0, [r2]\n"
+ " add r1, r3, #0\n"
+ " add r1, r1, #0x8a\n"
+ " ldrh r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " strh r0, [r1]\n"
+ " b ._634\n"
+ "._636:\n"
+ " .align 2, 0\n"
+ "._635:\n"
+ " .word gUnknown_02023A14+0x52\n"
+ "._633:\n"
+ " mov r1, #0x0\n"
+ " strh r1, [r2]\n"
+ " add r0, r3, #0\n"
+ " add r0, r0, #0x8a\n"
+ " strh r1, [r0]\n"
+ "._634:\n"
+ " bl debug_sub_8012540\n"
+ " b ._638\n"
+ "._621:\n"
+ " mov r0, #0x1\n"
+ " bl debug_sub_8010B80\n"
+ " ldr r2, ._639\n"
+ " ldr r0, ._639 + 4\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldrb r2, [r2]\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_8011EA0\n"
+ " b ._638\n"
+ "._640:\n"
+ " .align 2, 0\n"
+ "._639:\n"
+ " .word gUnknown_Debug_030043A0\n"
+ " .word gUnknown_Debug_030043A4\n"
+ "._617:\n"
+ " cmp r2, #0x4\n"
+ " bne ._642 @cond_branch\n"
+ " cmp r1, #0x5\n"
+ " bhi ._642 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " bl debug_sub_8010AAC\n"
+ " b ._644\n"
+ "._642:\n"
+ " ldr r6, ._650\n"
+ " ldr r5, ._650 + 4\n"
+ " ldr r4, ._650 + 8\n"
+ " ldrb r0, [r4]\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " ldrb r0, [r5]\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x1\n"
+ " ldr r2, ._650 + 12\n"
+ " ldrb r0, [r2]\n"
+ " mov r3, #0x46\n"
+ " mul r0, r0, r3\n"
+ " add r1, r1, r0\n"
+ " add r1, r1, r6\n"
+ " ldrh r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " strh r0, [r1]\n"
+ " ldrb r0, [r4]\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " ldrb r5, [r5]\n"
+ " add r1, r1, r5\n"
+ " lsl r0, r1, #0x1\n"
+ " ldrb r2, [r2]\n"
+ " mul r2, r2, r3\n"
+ " add r0, r0, r2\n"
+ " add r3, r0, r6\n"
+ " mov r4, #0x0\n"
+ " ldsh r2, [r3, r4]\n"
+ " ldr r4, ._650 + 16\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r1, r0, #0x1\n"
+ " add r0, r4, #6\n"
+ " add r0, r1, r0\n"
+ " ldrh r0, [r0]\n"
+ " cmp r2, r0\n"
+ " ble ._644 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0x8\n"
+ " add r0, r1, r0\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r3]\n"
+ "._644:\n"
+ " ldr r5, ._650 + 4\n"
+ " ldrb r0, [r5]\n"
+ " cmp r0, #0\n"
+ " bne ._645 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " bl debug_sub_8010AAC\n"
+ " ldr r0, ._650 + 8\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " add r0, r0, #0x4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_8011EA0\n"
+ "._645:\n"
+ " ldr r4, ._650 + 8\n"
+ " ldrb r1, [r4]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldrb r5, [r5]\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_8011EA0\n"
+ " ldrb r1, [r4]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_80123D8\n"
+ "._638:\n"
+ " ldr r0, ._650 + 20\n"
+ " ldrh r1, [r0, #0x30]\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._646 @cond_branch\n"
+ " ldr r0, ._650 + 4\n"
+ " ldrb r1, [r0]\n"
+ " ldr r2, ._650 + 8\n"
+ " mov r8, r2\n"
+ " add r7, r0, #0\n"
+ " cmp r1, #0x4\n"
+ " bne ._648 @cond_branch\n"
+ " ldrb r0, [r2]\n"
+ " cmp r0, #0x5\n"
+ " bhi ._648 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " bl debug_sub_8010AAC\n"
+ " b ._653\n"
+ "._651:\n"
+ " .align 2, 0\n"
+ "._650:\n"
+ " .word gUnknown_02023A14+0x52\n"
+ " .word gUnknown_Debug_030043A0\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word UnkDebug0+0x6c\n"
+ " .word gMain\n"
+ "._648:\n"
+ " mov r4, r8\n"
+ " ldrb r1, [r4]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldrb r1, [r7]\n"
+ " add r0, r0, r1\n"
+ " cmp r0, #0x1e\n"
+ " bne ._652 @cond_branch\n"
+ " mov r0, #0x2\n"
+ " bl debug_sub_8010B80\n"
+ " b ._653\n"
+ "._652:\n"
+ " ldr r4, ._655\n"
+ " lsl r1, r0, #0x1\n"
+ " ldr r3, ._655 + 4\n"
+ " ldrb r2, [r3]\n"
+ " mov r0, #0x46\n"
+ " mul r0, r0, r2\n"
+ " add r1, r1, r0\n"
+ " add r1, r1, r4\n"
+ " ldrh r0, [r1]\n"
+ " sub r0, r0, #0xa\n"
+ " strh r0, [r1]\n"
+ " add r6, r3, #0\n"
+ " ldr r5, ._655 + 8\n"
+ " b ._654\n"
+ "._656:\n"
+ " .align 2, 0\n"
+ "._655:\n"
+ " .word gUnknown_02023A14+0x52\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word UnkDebug0+0x6c\n"
+ "._657:\n"
+ " add r0, r5, #6\n"
+ " add r0, r1, r0\n"
+ " ldrh r0, [r0]\n"
+ " ldrh r2, [r3]\n"
+ " add r0, r0, r2\n"
+ " strh r0, [r3]\n"
+ "._654:\n"
+ " mov r1, r8\n"
+ " ldrb r0, [r1]\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " ldrb r2, [r7]\n"
+ " add r1, r1, r2\n"
+ " lsl r2, r1, #0x1\n"
+ " ldrb r3, [r6]\n"
+ " mov r0, #0x46\n"
+ " mul r0, r0, r3\n"
+ " add r2, r2, r0\n"
+ " add r3, r2, r4\n"
+ " mov r0, #0x0\n"
+ " ldsh r2, [r3, r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r1, r0, #0x1\n"
+ " add r0, r5, #0\n"
+ " add r0, r0, #0x8\n"
+ " add r0, r1, r0\n"
+ " ldrh r0, [r0]\n"
+ " cmp r2, r0\n"
+ " blt ._657 @cond_branch\n"
+ "._653:\n"
+ " ldr r5, ._663\n"
+ " ldrb r0, [r5]\n"
+ " cmp r0, #0\n"
+ " bne ._658 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " bl debug_sub_8010AAC\n"
+ " ldr r0, ._663 + 4\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " add r0, r0, #0x4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_8011EA0\n"
+ "._658:\n"
+ " ldr r4, ._663 + 4\n"
+ " ldrb r1, [r4]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldrb r5, [r5]\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_8011EA0\n"
+ " ldrb r1, [r4]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_80123D8\n"
+ "._646:\n"
+ " ldr r0, ._663 + 8\n"
+ " ldrh r1, [r0, #0x30]\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._659 @cond_branch\n"
+ " ldr r0, ._663\n"
+ " ldrb r1, [r0]\n"
+ " ldr r2, ._663 + 4\n"
+ " mov r8, r2\n"
+ " add r7, r0, #0\n"
+ " cmp r1, #0x4\n"
+ " bne ._661 @cond_branch\n"
+ " ldrb r0, [r2]\n"
+ " cmp r0, #0x5\n"
+ " bhi ._661 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " bl debug_sub_8010AAC\n"
+ " b ._666\n"
+ "._664:\n"
+ " .align 2, 0\n"
+ "._663:\n"
+ " .word gUnknown_Debug_030043A0\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gMain\n"
+ "._661:\n"
+ " mov r4, r8\n"
+ " ldrb r1, [r4]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldrb r1, [r7]\n"
+ " add r0, r0, r1\n"
+ " cmp r0, #0x1e\n"
+ " bne ._665 @cond_branch\n"
+ " mov r0, #0x3\n"
+ " bl debug_sub_8010B80\n"
+ " b ._666\n"
+ "._665:\n"
+ " ldr r4, ._668\n"
+ " lsl r1, r0, #0x1\n"
+ " ldr r3, ._668 + 4\n"
+ " ldrb r2, [r3]\n"
+ " mov r0, #0x46\n"
+ " mul r0, r0, r2\n"
+ " add r1, r1, r0\n"
+ " add r1, r1, r4\n"
+ " ldrh r0, [r1]\n"
+ " add r0, r0, #0xa\n"
+ " strh r0, [r1]\n"
+ " add r6, r3, #0\n"
+ " ldr r5, ._668 + 8\n"
+ " b ._667\n"
+ "._669:\n"
+ " .align 2, 0\n"
+ "._668:\n"
+ " .word gUnknown_02023A14+0x52\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word UnkDebug0+0x6c\n"
+ "._670:\n"
+ " ldrh r0, [r3]\n"
+ " sub r0, r0, r1\n"
+ " strh r0, [r3]\n"
+ "._667:\n"
+ " mov r2, r8\n"
+ " ldrb r0, [r2]\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " ldrb r0, [r7]\n"
+ " add r1, r1, r0\n"
+ " lsl r2, r1, #0x1\n"
+ " ldrb r3, [r6]\n"
+ " mov r0, #0x46\n"
+ " mul r0, r0, r3\n"
+ " add r2, r2, r0\n"
+ " add r3, r2, r4\n"
+ " mov r0, #0x0\n"
+ " ldsh r2, [r3, r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x1\n"
+ " add r1, r5, #6\n"
+ " add r0, r0, r1\n"
+ " ldrh r1, [r0]\n"
+ " cmp r2, r1\n"
+ " bgt ._670 @cond_branch\n"
+ "._666:\n"
+ " ldr r5, ._672\n"
+ " ldrb r0, [r5]\n"
+ " cmp r0, #0\n"
+ " bne ._671 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " bl debug_sub_8010AAC\n"
+ " ldr r0, ._672 + 4\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " add r0, r0, #0x4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_8011EA0\n"
+ "._671:\n"
+ " ldr r4, ._672 + 4\n"
+ " ldrb r1, [r4]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldrb r5, [r5]\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_8011EA0\n"
+ " ldrb r1, [r4]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_80123D8\n"
+ "._659:\n"
+ " bl AnimateSprites\n"
+ " bl BuildOamBuffer\n"
+ " add sp, sp, #0x10\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._673:\n"
+ " .align 2, 0\n"
+ "._672:\n"
+ " .word gUnknown_Debug_030043A0\n"
+ " .word gUnknown_Debug_030043A4\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8011498()
+{
+ 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"
+ " ldr r2, ._687\n"
+ " ldr r0, ._687 + 4\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldrb r2, [r2]\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r9, r0\n"
+ " ldr r4, ._687 + 8\n"
+ " ldrh r1, [r4, #0x28]\n"
+ " mov r0, #0x81\n"
+ " lsl r0, r0, #0x2\n"
+ " cmp r1, r0\n"
+ " bne ._674 @cond_branch\n"
+ " bl DoSoftReset\n"
+ "._674:\n"
+ " ldrh r0, [r4, #0x2a]\n"
+ " cmp r0, #0x4\n"
+ " bne ._675 @cond_branch\n"
+ " bl debug_sub_8012658\n"
+ " ldr r0, ._687 + 12\n"
+ " bl SetMainCallback2\n"
+ "._675:\n"
+ " ldrh r0, [r4, #0x2a]\n"
+ " cmp r0, #0x8\n"
+ " bne ._676 @cond_branch\n"
+ " bl debug_sub_801174C\n"
+ "._676:\n"
+ " ldrh r0, [r4, #0x2a]\n"
+ " cmp r0, #0x40\n"
+ " beq ._677 @cond_branch\n"
+ " cmp r0, #0x80\n"
+ " bne ._678 @cond_branch\n"
+ "._677:\n"
+ " bl debug_sub_8012658\n"
+ " ldr r0, ._687 + 16\n"
+ " ldrb r1, [r0]\n"
+ " mov r2, #0x2\n"
+ " eor r1, r1, r2\n"
+ " strb r1, [r0]\n"
+ " bl debug_sub_8012628\n"
+ "._678:\n"
+ " ldr r0, ._687 + 8\n"
+ " ldrh r0, [r0, #0x2a]\n"
+ " cmp r0, #0x20\n"
+ " beq ._679 @cond_branch\n"
+ " cmp r0, #0x10\n"
+ " bne ._680 @cond_branch\n"
+ "._679:\n"
+ " bl debug_sub_8012658\n"
+ " ldr r0, ._687 + 16\n"
+ " ldrb r1, [r0]\n"
+ " mov r2, #0x1\n"
+ " eor r1, r1, r2\n"
+ " strb r1, [r0]\n"
+ " bl debug_sub_8012628\n"
+ "._680:\n"
+ " ldr r0, ._687 + 8\n"
+ " ldrh r1, [r0, #0x30]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._681 @cond_branch\n"
+ " ldr r0, ._687 + 20\n"
+ " mov r8, r0\n"
+ " ldr r6, ._687 + 16\n"
+ " ldrb r4, [r6]\n"
+ " lsl r4, r4, #0x1\n"
+ " mov r0, r9\n"
+ " mov r1, #0x5\n"
+ " bl gScriptFuncs_End+0x4358\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x15\n"
+ " add r4, r4, r0\n"
+ " ldr r5, ._687 + 24\n"
+ " ldrb r2, [r5]\n"
+ " lsl r1, r2, #0x1\n"
+ " add r1, r1, r2\n"
+ " lsl r1, r1, #0x4\n"
+ " add r4, r4, r1\n"
+ " add r4, r4, r8\n"
+ " ldrh r1, [r4]\n"
+ " sub r1, r1, #0x1\n"
+ " strh r1, [r4]\n"
+ " ldrb r3, [r6]\n"
+ " lsl r1, r3, #0x1\n"
+ " add r1, r1, r0\n"
+ " ldrb r2, [r5]\n"
+ " lsl r0, r2, #0x1\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x4\n"
+ " add r1, r1, r0\n"
+ " mov r0, r8\n"
+ " add r4, r1, r0\n"
+ " mov r0, #0x0\n"
+ " ldsh r1, [r4, r0]\n"
+ " ldr r5, ._687 + 28\n"
+ " lsl r0, r3, #0x2\n"
+ " add r0, r0, r3\n"
+ " lsl r2, r0, #0x1\n"
+ " add r0, r5, #0\n"
+ " add r0, r0, #0x8\n"
+ " add r0, r2, r0\n"
+ " ldrh r0, [r0]\n"
+ " cmp r1, r0\n"
+ " bge ._682 @cond_branch\n"
+ " add r0, r5, #6\n"
+ " add r0, r2, r0\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r4]\n"
+ "._682:\n"
+ " bl debug_sub_8012294\n"
+ "._681:\n"
+ " ldr r0, ._687 + 8\n"
+ " ldrh r1, [r0, #0x30]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._683 @cond_branch\n"
+ " ldr r1, ._687 + 20\n"
+ " mov r8, r1\n"
+ " ldr r6, ._687 + 16\n"
+ " ldrb r4, [r6]\n"
+ " lsl r4, r4, #0x1\n"
+ " mov r0, r9\n"
+ " mov r1, #0x5\n"
+ " bl gScriptFuncs_End+0x4358\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x15\n"
+ " add r4, r4, r0\n"
+ " ldr r5, ._687 + 24\n"
+ " ldrb r2, [r5]\n"
+ " lsl r1, r2, #0x1\n"
+ " add r1, r1, r2\n"
+ " lsl r1, r1, #0x4\n"
+ " add r4, r4, r1\n"
+ " add r4, r4, r8\n"
+ " ldrh r1, [r4]\n"
+ " add r1, r1, #0x1\n"
+ " strh r1, [r4]\n"
+ " ldrb r3, [r6]\n"
+ " lsl r1, r3, #0x1\n"
+ " add r1, r1, r0\n"
+ " ldrb r2, [r5]\n"
+ " lsl r0, r2, #0x1\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x4\n"
+ " add r1, r1, r0\n"
+ " mov r0, r8\n"
+ " add r4, r1, r0\n"
+ " mov r0, #0x0\n"
+ " ldsh r1, [r4, r0]\n"
+ " ldr r5, ._687 + 28\n"
+ " lsl r0, r3, #0x2\n"
+ " add r0, r0, r3\n"
+ " lsl r2, r0, #0x1\n"
+ " add r0, r5, #6\n"
+ " add r0, r2, r0\n"
+ " ldrh r0, [r0]\n"
+ " cmp r1, r0\n"
+ " ble ._684 @cond_branch\n"
+ " add r0, r5, #0\n"
+ " add r0, r0, #0x8\n"
+ " add r0, r2, r0\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r4]\n"
+ "._684:\n"
+ " bl debug_sub_8012294\n"
+ "._683:\n"
+ " ldr r0, ._687 + 8\n"
+ " ldrh r1, [r0, #0x30]\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._685 @cond_branch\n"
+ " ldr r6, ._687 + 20\n"
+ " ldr r5, ._687 + 16\n"
+ " ldrb r4, [r5]\n"
+ " lsl r4, r4, #0x1\n"
+ " mov r0, r9\n"
+ " mov r1, #0x5\n"
+ " bl gScriptFuncs_End+0x4358\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x15\n"
+ " add r4, r4, r0\n"
+ " ldr r2, ._687 + 24\n"
+ " ldrb r1, [r2]\n"
+ " lsl r0, r1, #0x1\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x4\n"
+ " add r4, r4, r0\n"
+ " add r4, r4, r6\n"
+ " ldrh r0, [r4]\n"
+ " sub r0, r0, #0xa\n"
+ " strh r0, [r4]\n"
+ " mov sl, r5\n"
+ " mov r8, r6\n"
+ " add r7, r2, #0\n"
+ " ldr r6, ._687 + 28\n"
+ " b ._686\n"
+ "._688:\n"
+ " .align 2, 0\n"
+ "._687:\n"
+ " .word gUnknown_Debug_030043A0\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gMain\n"
+ " .word debug_sub_8010CAC+1\n"
+ " .word gUnknown_Debug_030043A8\n"
+ " .word gUnknown_02023A14+0xde\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word UnkDebug0+0x1ac\n"
+ "._689:\n"
+ " add r0, r6, #6\n"
+ " add r0, r2, r0\n"
+ " ldrh r0, [r0]\n"
+ " ldrh r1, [r4]\n"
+ " add r0, r0, r1\n"
+ " strh r0, [r4]\n"
+ "._686:\n"
+ " mov r0, sl\n"
+ " ldrb r5, [r0]\n"
+ " lsl r4, r5, #0x1\n"
+ " mov r0, r9\n"
+ " mov r1, #0x5\n"
+ " bl gScriptFuncs_End+0x4358\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x15\n"
+ " add r4, r4, r0\n"
+ " ldrb r1, [r7]\n"
+ " lsl r0, r1, #0x1\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x4\n"
+ " add r4, r4, r0\n"
+ " add r4, r4, r8\n"
+ " mov r0, #0x0\n"
+ " ldsh r1, [r4, r0]\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r2, r0, #0x1\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0x8\n"
+ " add r0, r2, r0\n"
+ " ldrh r0, [r0]\n"
+ " cmp r1, r0\n"
+ " blt ._689 @cond_branch\n"
+ " bl debug_sub_8012294\n"
+ "._685:\n"
+ " ldr r0, ._692\n"
+ " ldrh r1, [r0, #0x30]\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._690 @cond_branch\n"
+ " ldr r6, ._692 + 4\n"
+ " ldr r5, ._692 + 8\n"
+ " ldrb r4, [r5]\n"
+ " lsl r4, r4, #0x1\n"
+ " mov r0, r9\n"
+ " mov r1, #0x5\n"
+ " bl gScriptFuncs_End+0x4358\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x15\n"
+ " add r4, r4, r0\n"
+ " ldr r2, ._692 + 12\n"
+ " ldrb r1, [r2]\n"
+ " lsl r0, r1, #0x1\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x4\n"
+ " add r4, r4, r0\n"
+ " add r4, r4, r6\n"
+ " ldrh r0, [r4]\n"
+ " add r0, r0, #0xa\n"
+ " strh r0, [r4]\n"
+ " mov sl, r5\n"
+ " mov r8, r6\n"
+ " add r7, r2, #0\n"
+ " ldr r6, ._692 + 16\n"
+ " b ._691\n"
+ "._693:\n"
+ " .align 2, 0\n"
+ "._692:\n"
+ " .word gMain\n"
+ " .word gUnknown_02023A14+0xde\n"
+ " .word gUnknown_Debug_030043A8\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word UnkDebug0+0x1ac\n"
+ "._694:\n"
+ " ldrh r0, [r4]\n"
+ " sub r0, r0, r1\n"
+ " strh r0, [r4]\n"
+ "._691:\n"
+ " mov r1, sl\n"
+ " ldrb r5, [r1]\n"
+ " lsl r4, r5, #0x1\n"
+ " mov r0, r9\n"
+ " mov r1, #0x5\n"
+ " bl gScriptFuncs_End+0x4358\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x15\n"
+ " add r4, r4, r0\n"
+ " ldrb r1, [r7]\n"
+ " lsl r0, r1, #0x1\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x4\n"
+ " add r4, r4, r0\n"
+ " add r4, r4, r8\n"
+ " mov r0, #0x0\n"
+ " ldsh r2, [r4, r0]\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x1\n"
+ " add r1, r6, #6\n"
+ " add r0, r0, r1\n"
+ " ldrh r1, [r0]\n"
+ " cmp r2, r1\n"
+ " bgt ._694 @cond_branch\n"
+ " bl debug_sub_8012294\n"
+ "._690:\n"
+ " bl AnimateSprites\n"
+ " bl BuildOamBuffer\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_801174C()
+{
+ 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, #0xffffffe8\n"
+ " mov r0, #0x0\n"
+ " mov r9, r0\n"
+ " ldr r1, ._704\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " bl Random\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x10\n"
+ " lsr r4, r4, #0x10\n"
+ " mov r0, #0x3\n"
+ " and r4, r4, r0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r6, r4, #0x18\n"
+ " ldr r5, ._704 + 4\n"
+ " lsl r1, r6, #0x1\n"
+ " add r1, r1, r6\n"
+ " lsl r1, r1, #0x1\n"
+ " ldr r0, ._704 + 8\n"
+ " add r1, r1, r0\n"
+ " add r0, r5, #0\n"
+ " bl StringCopy\n"
+ " lsr r4, r4, #0x19\n"
+ " strb r4, [r5, #0x8]\n"
+ " bl ZeroPlayerPartyMons\n"
+ " bl ZeroEnemyPartyMons\n"
+ " ldr r0, ._704 + 12\n"
+ " mov r1, #0x3c\n"
+ " ldsh r7, [r0, r1]\n"
+ " mov r2, r9\n"
+ " str r2, [sp, #0xc]\n"
+ " cmp r7, #0x9\n"
+ " ble ._695 @cond_branch\n"
+ " mov r0, #0x0\n"
+ "._696:\n"
+ " sub r7, r7, #0xa\n"
+ " add r0, r0, #0x1\n"
+ " cmp r7, #0x9\n"
+ " bgt ._696 @cond_branch\n"
+ " str r0, [sp, #0xc]\n"
+ "._695:\n"
+ " ldr r2, ._704 + 16\n"
+ " ldr r1, ._704 + 20\n"
+ " sub r0, r7, #1\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r0, r1\n"
+ " ldrh r3, [r0]\n"
+ " strh r3, [r2]\n"
+ " ldr r1, ._704 + 24\n"
+ " mov r0, #0x8\n"
+ " strb r0, [r1]\n"
+ " ldr r1, ._704 + 28\n"
+ " add r0, sp, #0xc\n"
+ " ldrb r0, [r0]\n"
+ " strb r0, [r1]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r3\n"
+ " cmp r0, #0\n"
+ " beq ._697 @cond_branch\n"
+ " bl EnterSafariMode\n"
+ "._697:\n"
+ " ldr r5, ._704 + 12\n"
+ " ldrh r0, [r5, #0x3c]\n"
+ " sub r0, r0, #0x2\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " cmp r0, #0x2\n"
+ " bhi ._698 @cond_branch\n"
+ " ldr r4, ._704 + 32\n"
+ " bl Random\n"
+ " mov r1, #0x7\n"
+ " and r1, r1, r0\n"
+ " add r1, r1, #0x1\n"
+ " strh r1, [r4]\n"
+ "._698:\n"
+ " ldr r1, ._704 + 36\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ " mov r7, #0x0\n"
+ "._745:\n"
+ " lsl r0, r7, #0x1\n"
+ " ldr r3, ._704 + 12\n"
+ " add r1, r0, r3\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r1, r2]\n"
+ " add r2, r3, #0\n"
+ " mov r8, r0\n"
+ " add r3, r7, #5\n"
+ " mov sl, r3\n"
+ " cmp r1, #0\n"
+ " beq ._699 @cond_branch\n"
+ " add r0, r7, #4\n"
+ " lsl r0, r0, #0x1\n"
+ " add r1, r2, #0\n"
+ " add r0, r0, r1\n"
+ " mov r3, #0x0\n"
+ " ldsh r0, [r0, r3]\n"
+ " cmp r0, #0x1\n"
+ " beq ._707 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bgt ._701 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._706 @cond_branch\n"
+ " b ._708\n"
+ "._705:\n"
+ " .align 2, 0\n"
+ "._704:\n"
+ " .word gUnknown_020297ED\n"
+ " .word gSaveBlock2\n"
+ " .word UnkDebug0+0x279\n"
+ " .word gUnknown_02023A14+0x52\n"
+ " .word gBattleTypeFlags\n"
+ " .word UnkDebug0+0x1e0\n"
+ " .word gUnknown_02023A14+0x50\n"
+ " .word gBattleTerrain\n"
+ " .word gTrainerBattleOpponent\n"
+ " .word gPlayerPartyCount\n"
+ "._701:\n"
+ " cmp r0, #0x2\n"
+ " beq ._706 @cond_branch\n"
+ " cmp r0, #0x3\n"
+ " beq ._707 @cond_branch\n"
+ " b ._708\n"
+ "._706:\n"
+ " mov r6, #0x0\n"
+ " b ._710\n"
+ "._707:\n"
+ " mov r6, #0xfe\n"
+ " b ._710\n"
+ "._708:\n"
+ " mov r6, #0xff\n"
+ "._710:\n"
+ " mov r1, r8\n"
+ " add r0, r1, r2\n"
+ " mov r3, #0x0\n"
+ " ldsh r0, [r0, r3]\n"
+ " add r1, r7, #5\n"
+ " mov sl, r1\n"
+ " cmp r0, #0xc9\n"
+ " bne ._712 @cond_branch\n"
+ " cmp r1, #0x1d\n"
+ " bgt ._712 @cond_branch\n"
+ " add r0, r7, #7\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r0, r2\n"
+ " ldrb r0, [r0]\n"
+ " mov r9, r0\n"
+ " b ._713\n"
+ "._712:\n"
+ " mov r2, #0x0\n"
+ " mov r9, r2\n"
+ "._713:\n"
+ " add r0, r7, #0\n"
+ " mov r1, #0x5\n"
+ " bl gScriptFuncs_End+0x3d30\n"
+ " mov r3, #0x64\n"
+ " mul r0, r0, r3\n"
+ " ldr r1, ._719\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._719 + 4\n"
+ " add r1, r1, r8\n"
+ " ldrh r1, [r1]\n"
+ " add r2, r7, #1\n"
+ " lsl r2, r2, #0x1\n"
+ " ldr r3, ._719 + 4\n"
+ " add r2, r2, r3\n"
+ " ldrb r2, [r2]\n"
+ " str r6, [sp]\n"
+ " mov r3, #0x0\n"
+ " str r3, [sp, #0x4]\n"
+ " mov r3, r9\n"
+ " str r3, [sp, #0x8]\n"
+ " mov r3, #0x0\n"
+ " bl CreateMonWithGenderNatureLetter\n"
+ "._699:\n"
+ " add r0, r7, #0\n"
+ " mov r1, #0x5\n"
+ " bl gScriptFuncs_End+0x3d30\n"
+ " mov r2, #0x64\n"
+ " add r1, r0, #0\n"
+ " mul r1, r1, r2\n"
+ " ldr r0, ._719\n"
+ " add r5, r1, r0\n"
+ " ldr r4, ._719 + 8\n"
+ " mov r3, r8\n"
+ " add r6, r3, r4\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0xc\n"
+ " add r2, r6, #0\n"
+ " bl SetMonData\n"
+ " sub r4, r4, #0x4\n"
+ " add r1, r7, #2\n"
+ " lsl r0, r1, #0x1\n"
+ " add r0, r0, r4\n"
+ " ldrh r0, [r0]\n"
+ " sub r0, r0, #0x1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " str r1, [sp, #0x10]\n"
+ " cmp r0, #0xb\n"
+ " bhi ._714 @cond_branch\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x26\n"
+ " add r2, r6, #0\n"
+ " bl SetMonData\n"
+ "._714:\n"
+ " add r1, r7, #3\n"
+ " lsl r0, r1, #0x1\n"
+ " add r0, r0, r4\n"
+ " mov r3, #0x0\n"
+ " ldsh r2, [r0, r3]\n"
+ " str r1, [sp, #0x14]\n"
+ " cmp r2, #0\n"
+ " beq ._716 @cond_branch\n"
+ " cmp r2, #0x3\n"
+ " beq ._716 @cond_branch\n"
+ " cmp r2, #0x2\n"
+ " bgt ._717 @cond_branch\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r0, r1]\n"
+ " sub r0, r0, #0x1\n"
+ " b ._718\n"
+ "._720:\n"
+ " .align 2, 0\n"
+ "._719:\n"
+ " .word gEnemyParty\n"
+ " .word gUnknown_02023A14+0x52\n"
+ " .word gUnknown_02023A14+0x56\n"
+ "._717:\n"
+ " mov r2, #0x0\n"
+ " ldsh r0, [r0, r2]\n"
+ " sub r0, r0, #0x4\n"
+ "._718:\n"
+ " str r0, [sp, #0xc]\n"
+ " add r0, r7, #0\n"
+ " mov r1, #0x5\n"
+ " bl gScriptFuncs_End+0x3d30\n"
+ " mov r3, #0x64\n"
+ " mul r0, r0, r3\n"
+ " ldr r1, ._726\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x2e\n"
+ " add r2, sp, #0xc\n"
+ " bl SetMonData\n"
+ "._716:\n"
+ " ldr r1, ._726 + 4\n"
+ " add r1, r1, #0x46\n"
+ " mov r2, r8\n"
+ " add r0, r2, r1\n"
+ " mov r3, #0x0\n"
+ " ldsh r0, [r0, r3]\n"
+ " ldr r2, ._726 + 4\n"
+ " cmp r0, #0\n"
+ " beq ._721 @cond_branch\n"
+ " add r0, r7, #4\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r0, r1]\n"
+ " cmp r0, #0x1\n"
+ " beq ._729 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bgt ._723 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._728 @cond_branch\n"
+ " b ._730\n"
+ "._727:\n"
+ " .align 2, 0\n"
+ "._726:\n"
+ " .word gEnemyParty\n"
+ " .word gUnknown_02023A14+0x52\n"
+ "._723:\n"
+ " cmp r0, #0x2\n"
+ " beq ._728 @cond_branch\n"
+ " cmp r0, #0x3\n"
+ " beq ._729 @cond_branch\n"
+ " b ._730\n"
+ "._728:\n"
+ " mov r6, #0x0\n"
+ " b ._732\n"
+ "._729:\n"
+ " mov r6, #0xfe\n"
+ " b ._732\n"
+ "._730:\n"
+ " mov r6, #0xff\n"
+ "._732:\n"
+ " add r1, r2, #0\n"
+ " add r1, r1, #0x46\n"
+ " mov r2, r8\n"
+ " add r0, r2, r1\n"
+ " mov r3, #0x0\n"
+ " ldsh r0, [r0, r3]\n"
+ " cmp r0, #0xc9\n"
+ " bne ._734 @cond_branch\n"
+ " mov r0, sl\n"
+ " cmp r0, #0x1d\n"
+ " bgt ._734 @cond_branch\n"
+ " add r0, r7, #7\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0]\n"
+ " mov r9, r0\n"
+ " b ._735\n"
+ "._734:\n"
+ " mov r1, #0x0\n"
+ " mov r9, r1\n"
+ "._735:\n"
+ " add r0, r7, #0\n"
+ " mov r1, #0x5\n"
+ " bl gScriptFuncs_End+0x3d30\n"
+ " mov r2, #0x64\n"
+ " mul r0, r0, r2\n"
+ " ldr r1, ._741\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._741 + 4\n"
+ " add r1, r1, r8\n"
+ " ldrh r1, [r1]\n"
+ " add r2, r7, #1\n"
+ " lsl r2, r2, #0x1\n"
+ " ldr r3, ._741 + 4\n"
+ " add r2, r2, r3\n"
+ " ldrb r2, [r2]\n"
+ " str r6, [sp]\n"
+ " mov r3, #0x0\n"
+ " str r3, [sp, #0x4]\n"
+ " mov r3, r9\n"
+ " str r3, [sp, #0x8]\n"
+ " mov r3, #0x0\n"
+ " bl CreateMonWithGenderNatureLetter\n"
+ " ldr r1, ._741 + 8\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ "._721:\n"
+ " add r0, r7, #0\n"
+ " mov r1, #0x5\n"
+ " bl gScriptFuncs_End+0x3d30\n"
+ " mov r2, #0x64\n"
+ " add r1, r0, #0\n"
+ " mul r1, r1, r2\n"
+ " ldr r0, ._741\n"
+ " add r4, r1, r0\n"
+ " ldr r0, ._741 + 12\n"
+ " mov r3, r8\n"
+ " add r5, r3, r0\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0xc\n"
+ " add r2, r5, #0\n"
+ " bl SetMonData\n"
+ " ldr r1, [sp, #0x10]\n"
+ " lsl r0, r1, #0x1\n"
+ " ldr r2, ._741 + 16\n"
+ " add r0, r0, r2\n"
+ " ldrh r0, [r0]\n"
+ " sub r0, r0, #0x1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " cmp r0, #0xb\n"
+ " bhi ._736 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x26\n"
+ " add r2, r5, #0\n"
+ " bl SetMonData\n"
+ "._736:\n"
+ " ldr r3, [sp, #0x14]\n"
+ " lsl r0, r3, #0x1\n"
+ " ldr r1, ._741 + 4\n"
+ " add r0, r0, r1\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r0, r2]\n"
+ " cmp r1, #0\n"
+ " beq ._738 @cond_branch\n"
+ " cmp r1, #0x3\n"
+ " beq ._738 @cond_branch\n"
+ " cmp r1, #0x2\n"
+ " bgt ._739 @cond_branch\n"
+ " add r0, r1, #0\n"
+ " sub r0, r0, #0x1\n"
+ " b ._740\n"
+ "._742:\n"
+ " .align 2, 0\n"
+ "._741:\n"
+ " .word gPlayerParty\n"
+ " .word gUnknown_02023A14+0x98\n"
+ " .word gPlayerPartyCount\n"
+ " .word gUnknown_02023A14+0x9c\n"
+ " .word gUnknown_02023A14+0x52\n"
+ "._739:\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r0, r1]\n"
+ " sub r0, r0, #0x4\n"
+ "._740:\n"
+ " str r0, [sp, #0xc]\n"
+ " add r0, r7, #0\n"
+ " mov r1, #0x5\n"
+ " bl gScriptFuncs_End+0x3d30\n"
+ " mov r2, #0x64\n"
+ " mul r0, r0, r2\n"
+ " ldr r1, ._750\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x2e\n"
+ " add r2, sp, #0xc\n"
+ " bl SetMonData\n"
+ "._738:\n"
+ " ldr r3, [sp, #0x14]\n"
+ " lsl r0, r3, #0x1\n"
+ " ldr r1, ._750 + 4\n"
+ " add r0, r0, r1\n"
+ " mov r2, #0x0\n"
+ " ldsh r0, [r0, r2]\n"
+ " cmp r0, #0x2\n"
+ " ble ._743 @cond_branch\n"
+ " add r0, r7, #0\n"
+ " mov r1, #0x5\n"
+ " bl gScriptFuncs_End+0x3d30\n"
+ " mov r3, #0x64\n"
+ " mul r0, r0, r3\n"
+ " ldr r1, ._750\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x7\n"
+ " ldr r2, ._750 + 8\n"
+ " bl SetMonData\n"
+ " ldr r2, ._750 + 12\n"
+ " ldrb r0, [r2]\n"
+ " mov r1, #0x40\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r2]\n"
+ "._743:\n"
+ " mov r7, sl\n"
+ " cmp r7, #0x1d\n"
+ " bgt ._744 @cond_branch\n"
+ " b ._745\n"
+ "._744:\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp, #0xc]\n"
+ " mov r0, #0x64\n"
+ " mov r8, r0\n"
+ " ldr r1, ._750 + 16\n"
+ " mov r9, r1\n"
+ " ldr r2, ._750\n"
+ " mov sl, r2\n"
+ "._747:\n"
+ " mov r7, #0x0\n"
+ "._746:\n"
+ " ldr r2, [sp, #0xc]\n"
+ " mov r0, r8\n"
+ " mul r0, r0, r2\n"
+ " ldr r3, ._750 + 20\n"
+ " add r0, r0, r3\n"
+ " add r5, r7, #0\n"
+ " add r5, r5, #0xd\n"
+ " lsl r2, r2, #0x3\n"
+ " lsl r4, r7, #0x1\n"
+ " mov r3, r9\n"
+ " add r1, r4, r3\n"
+ " add r2, r2, r1\n"
+ " add r1, r5, #0\n"
+ " bl SetMonData\n"
+ " ldr r1, [sp, #0xc]\n"
+ " mov r0, r8\n"
+ " mul r0, r0, r1\n"
+ " ldr r2, ._750 + 20\n"
+ " add r0, r0, r2\n"
+ " add r6, r7, #0\n"
+ " add r6, r6, #0x11\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r4, r1\n"
+ " add r1, r1, r9\n"
+ " mov r3, #0x0\n"
+ " ldsh r1, [r1, r3]\n"
+ " lsl r2, r1, #0x1\n"
+ " add r2, r2, r1\n"
+ " lsl r2, r2, #0x2\n"
+ " ldr r1, ._750 + 24\n"
+ " add r2, r2, r1\n"
+ " add r1, r6, #0\n"
+ " bl SetMonData\n"
+ " ldr r2, [sp, #0xc]\n"
+ " mov r0, r8\n"
+ " mul r0, r0, r2\n"
+ " add r0, r0, sl\n"
+ " lsl r2, r2, #0x3\n"
+ " ldr r3, ._750 + 28\n"
+ " add r1, r4, r3\n"
+ " add r2, r2, r1\n"
+ " add r1, r5, #0\n"
+ " bl SetMonData\n"
+ " ldr r1, [sp, #0xc]\n"
+ " mov r0, r8\n"
+ " mul r0, r0, r1\n"
+ " add r0, r0, sl\n"
+ " lsl r1, r1, #0x3\n"
+ " add r4, r4, r1\n"
+ " ldr r1, ._750 + 28\n"
+ " add r4, r4, r1\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r4, r2]\n"
+ " lsl r2, r1, #0x1\n"
+ " add r2, r2, r1\n"
+ " lsl r2, r2, #0x2\n"
+ " ldr r3, ._750 + 24\n"
+ " add r2, r2, r3\n"
+ " add r1, r6, #0\n"
+ " bl SetMonData\n"
+ " add r7, r7, #0x1\n"
+ " cmp r7, #0x3\n"
+ " ble ._746 @cond_branch\n"
+ " ldr r0, [sp, #0xc]\n"
+ " add r0, r0, #0x1\n"
+ " str r0, [sp, #0xc]\n"
+ " cmp r0, #0x5\n"
+ " ble ._747 @cond_branch\n"
+ " ldr r3, ._750 + 32\n"
+ " add r4, r3, #0\n"
+ " add r4, r4, #0x44\n"
+ " ldrh r1, [r4]\n"
+ " mov r2, #0x0\n"
+ " ldsh r0, [r4, r2]\n"
+ " cmp r0, #0x8\n"
+ " bne ._748 @cond_branch\n"
+ " ldr r0, ._750 + 12\n"
+ " ldrb r1, [r0]\n"
+ " mov r2, #0x80\n"
+ " b ._753\n"
+ "._751:\n"
+ " .align 2, 0\n"
+ "._750:\n"
+ " .word gPlayerParty\n"
+ " .word gUnknown_02023A14+0x98\n"
+ " .word UnkDebug0+0x291\n"
+ " .word gUnknown_02023A14+0x50\n"
+ " .word gUnknown_02023A14+0xde\n"
+ " .word gEnemyParty\n"
+ " .word gBattleMoves+0x4\n"
+ " .word gUnknown_02023A14+0x10e\n"
+ " .word gUnknown_02023A14+0x52\n"
+ "._748:\n"
+ " cmp r0, #0x7\n"
+ " bne ._752 @cond_branch\n"
+ " ldr r0, ._754\n"
+ " ldrb r1, [r0]\n"
+ " mov r2, #0x20\n"
+ " b ._753\n"
+ "._755:\n"
+ " .align 2, 0\n"
+ "._754:\n"
+ " .word gUnknown_02023A14+0x50\n"
+ "._752:\n"
+ " cmp r0, #0x6\n"
+ " bne ._756 @cond_branch\n"
+ " ldr r2, ._759\n"
+ " ldrb r0, [r2]\n"
+ " mov r1, #0x10\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r2]\n"
+ " ldrh r1, [r3, #0x4]\n"
+ " mov r2, #0x4\n"
+ " ldsh r0, [r3, r2]\n"
+ " cmp r0, #0x5\n"
+ " ble ._757 @cond_branch\n"
+ " ldr r0, ._759 + 4\n"
+ " sub r1, r1, #0x2\n"
+ " ldr r3, ._759 + 8\n"
+ " add r0, r0, r3\n"
+ " b ._761\n"
+ "._760:\n"
+ " .align 2, 0\n"
+ "._759:\n"
+ " .word gUnknown_02023A14+0x50\n"
+ " .word +0x2000000\n"
+ " .word 0x160a3\n"
+ "._757:\n"
+ " ldr r0, ._762\n"
+ " ldr r2, ._762 + 4\n"
+ " add r0, r0, r2\n"
+ " b ._761\n"
+ "._763:\n"
+ " .align 2, 0\n"
+ "._762:\n"
+ " .word +0x2000000\n"
+ " .word 0x160a3\n"
+ "._756:\n"
+ " cmp r0, #0x5\n"
+ " bne ._764 @cond_branch\n"
+ " ldr r0, ._766\n"
+ " ldrb r1, [r0]\n"
+ " mov r2, #0x21\n"
+ "._753:\n"
+ " orr r1, r1, r2\n"
+ "._761:\n"
+ " strb r1, [r0]\n"
+ " bl sub_80408BC\n"
+ " b ._770\n"
+ "._767:\n"
+ " .align 2, 0\n"
+ "._766:\n"
+ " .word gUnknown_02023A14+0x50\n"
+ "._764:\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._768 @cond_branch\n"
+ " bl sub_80408BC\n"
+ "._768:\n"
+ " ldrh r3, [r4]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r3\n"
+ " cmp r0, #0\n"
+ " beq ._769 @cond_branch\n"
+ " ldr r0, ._772\n"
+ " ldrb r1, [r0]\n"
+ " mov r2, #0x4\n"
+ " orr r1, r1, r2\n"
+ " strb r1, [r0]\n"
+ "._769:\n"
+ " mov r0, #0x4\n"
+ " and r0, r0, r3\n"
+ " cmp r0, #0\n"
+ " beq ._770 @cond_branch\n"
+ " ldr r0, ._772\n"
+ " ldrb r1, [r0]\n"
+ " mov r2, #0x6\n"
+ " orr r1, r1, r2\n"
+ " strb r1, [r0]\n"
+ "._770:\n"
+ " ldr r0, ._772 + 4\n"
+ " ldr r1, ._772 + 8\n"
+ " str r1, [r0, #0x8]\n"
+ " ldr r0, ._772 + 12\n"
+ " bl SetMainCallback2\n"
+ " bl ClearBag\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x2\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x3\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x4\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x5\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x6\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x7\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x8\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x9\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0xa\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0xb\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0xc\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x13\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x14\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x19\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x22\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x23\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x25\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x49\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x4a\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x4b\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x4c\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x4d\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x4e\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x50\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " ldr r4, ._772 + 16\n"
+ " mov r7, #0xe\n"
+ "._771:\n"
+ " add r0, r4, #0\n"
+ " bl sub_810CA34\n"
+ " add r4, r4, #0x8\n"
+ " sub r7, r7, #0x1\n"
+ " cmp r7, #0\n"
+ " bge ._771 @cond_branch\n"
+ " add sp, sp, #0x18\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._773:\n"
+ " .align 2, 0\n"
+ "._772:\n"
+ " .word gUnknown_02023A14+0x50\n"
+ " .word gMain\n"
+ " .word debug_sub_80108B8+1\n"
+ " .word unref_sub_800D684+1\n"
+ " .word UnkDebug0+0x1f4\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8011D40()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r1, ._774\n"
+ " ldr r0, ._774 + 4\n"
+ " str r0, [r1]\n"
+ " ldr r0, ._774 + 8\n"
+ " str r0, [r1, #0x4]\n"
+ " ldr r0, ._774 + 12\n"
+ " str r0, [r1, #0x8]\n"
+ " ldr r0, [r1, #0x8]\n"
+ " sub r1, r1, #0xc4\n"
+ " ldr r0, ._774 + 16\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " ldr r0, ._774 + 20\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " ldr r0, ._774 + 24\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " ldr r0, ._774 + 28\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " ldr r0, ._774 + 32\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " ldr r0, ._774 + 36\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " ldr r0, ._774 + 40\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " ldr r0, ._774 + 44\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ " bl LoadOam\n"
+ " bl ProcessSpriteCopyRequests\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._775:\n"
+ " .align 2, 0\n"
+ "._774:\n"
+ " .word 0x40000d4\n"
+ " .word +0x2000000\n"
+ " .word 0x6004000\n"
+ " .word 0x80000800\n"
+ " .word gUnknown_030042A4\n"
+ " .word gUnknown_030042A0\n"
+ " .word gUnknown_030042C0\n"
+ " .word gUnknown_030041B4\n"
+ " .word gUnknown_03004288\n"
+ " .word gUnknown_03004280\n"
+ " .word gUnknown_030041B0\n"
+ " .word gUnknown_030041B8\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_nullsub_45()
+{
+ asm(
+ " bx lr\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8011DD4()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r1, ._776\n"
+ " ldr r2, ._776 + 4\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x8\n"
+ " ldr r0, ._776 + 8\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " ldr r0, ._776 + 12\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " ldr r0, ._776 + 16\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " ldr r0, ._776 + 20\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " ldr r0, ._776 + 24\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " ldr r0, ._776 + 28\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " ldr r0, ._776 + 32\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ " add r1, r1, #0x2\n"
+ " ldr r0, ._776 + 36\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r1]\n"
+ " bl LoadOam\n"
+ " bl ProcessSpriteCopyRequests\n"
+ " bl TransferPlttBuffer\n"
+ " bl sub_8089668\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._777:\n"
+ " .align 2, 0\n"
+ "._776:\n"
+ " .word 0x4000008\n"
+ " .word 0x9803\n"
+ " .word gUnknown_030042A4\n"
+ " .word gUnknown_030042A0\n"
+ " .word gUnknown_030042C0\n"
+ " .word gUnknown_030041B4\n"
+ " .word gUnknown_03004288\n"
+ " .word gUnknown_03004280\n"
+ " .word gUnknown_030041B0\n"
+ " .word gUnknown_030041B8\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8011E5C()
+{
+ asm(
+ " push {r4, lr}\n"
+ " mov r4, #0x0\n"
+ "._778:\n"
+ " lsl r0, r4, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl debug_sub_8011EA0\n"
+ " add r4, r4, #0x1\n"
+ " cmp r4, #0x1e\n"
+ " ble ._778 @cond_branch\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8011E74()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " ldr r0, ._780\n"
+ " ldrb r5, [r0]\n"
+ " mov r1, #0x0\n"
+ " strb r1, [r0]\n"
+ " add r4, r0, #0\n"
+ "._779:\n"
+ " bl debug_sub_8012294\n"
+ " ldrb r0, [r4]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r4]\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x3\n"
+ " bls ._779 @cond_branch\n"
+ " ldr r0, ._780\n"
+ " strb r5, [r0]\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._781:\n"
+ " .align 2, 0\n"
+ "._780:\n"
+ " .word gUnknown_Debug_030043A8\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8011EA0()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, sl\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5, r6, r7}\n"
+ " add sp, sp, #0xfffffff4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ " cmp r7, #0x22\n"
+ " bls ._782 @cond_branch\n"
+ " b ._815\n"
+ "._782:\n"
+ " lsl r0, r7, #0x2\n"
+ " ldr r1, ._785\n"
+ " add r1, r0, r1\n"
+ " ldr r1, [r1]\n"
+ " str r0, [sp, #0x8]\n"
+ " mov pc, r1\n"
+ "._786:\n"
+ " .align 2, 0\n"
+ "._785:\n"
+ " .word ._784\n"
+ "._784:\n"
+ " .word ._812\n"
+ " .word ._817\n"
+ " .word ._814\n"
+ " .word ._815\n"
+ " .word ._816\n"
+ " .word ._812\n"
+ " .word ._817\n"
+ " .word ._814\n"
+ " .word ._815\n"
+ " .word ._816\n"
+ " .word ._812\n"
+ " .word ._817\n"
+ " .word ._814\n"
+ " .word ._815\n"
+ " .word ._816\n"
+ " .word ._812\n"
+ " .word ._817\n"
+ " .word ._814\n"
+ " .word ._815\n"
+ " .word ._816\n"
+ " .word ._812\n"
+ " .word ._817\n"
+ " .word ._814\n"
+ " .word ._815\n"
+ " .word ._816\n"
+ " .word ._812\n"
+ " .word ._817\n"
+ " .word ._814\n"
+ " .word ._815\n"
+ " .word ._816\n"
+ " .word ._817\n"
+ " .word ._848\n"
+ " .word ._848\n"
+ " .word ._848\n"
+ " .word ._848\n"
+ "._812:\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x14\n"
+ " bl debug_sub_8010A7C\n"
+ " ldr r6, ._823\n"
+ " ldr r2, ._823 + 4\n"
+ " ldr r0, [sp, #0x8]\n"
+ " add r1, r0, r7\n"
+ " lsl r1, r1, #0x1\n"
+ " add r0, r1, r2\n"
+ " ldrh r0, [r0]\n"
+ " str r0, [sp, #0x4]\n"
+ " add r0, r2, #2\n"
+ " add r0, r1, r0\n"
+ " ldrb r0, [r0]\n"
+ " mov r8, r0\n"
+ " add r2, r2, #0x4\n"
+ " add r1, r1, r2\n"
+ " ldrb r1, [r1]\n"
+ " mov r9, r1\n"
+ " str r1, [sp]\n"
+ " ldr r0, ._823 + 8\n"
+ " add r1, r6, #0\n"
+ " ldr r2, [sp, #0x4]\n"
+ " mov r3, r8\n"
+ " bl InitWindow\n"
+ " ldr r0, ._823 + 8\n"
+ " bl sub_8002F44\n"
+ " ldr r1, ._823 + 12\n"
+ " mov sl, r1\n"
+ " lsl r4, r7, #0x1\n"
+ " ldr r5, ._823 + 16\n"
+ " ldrb r0, [r5]\n"
+ " mov r7, #0x46\n"
+ " mul r0, r0, r7\n"
+ " add r0, r4, r0\n"
+ " add r0, r0, sl\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r0, r2]\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r2, #0xd3\n"
+ " lsl r2, r2, #0x1\n"
+ " ldrb r3, [r5]\n"
+ " lsl r3, r3, #0x5\n"
+ " add r3, r3, #0x19\n"
+ " lsl r3, r3, #0x18\n"
+ " lsr r3, r3, #0x18\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " ldr r0, ._823 + 8\n"
+ " add r1, r6, #0\n"
+ " bl InitWindow\n"
+ " ldr r0, ._823 + 8\n"
+ " bl sub_8002F44\n"
+ " mov r0, #0xff\n"
+ " strb r0, [r6]\n"
+ " ldrb r0, [r5]\n"
+ " mul r0, r0, r7\n"
+ " add r4, r4, r0\n"
+ " add r4, r4, sl\n"
+ " mov r0, #0x0\n"
+ " ldsh r1, [r4, r0]\n"
+ " mov r0, #0xb\n"
+ " mul r1, r1, r0\n"
+ " ldr r0, ._823 + 20\n"
+ " add r1, r1, r0\n"
+ " add r0, r6, #0\n"
+ " bl StringAppend\n"
+ " mov r1, r9\n"
+ " str r1, [sp]\n"
+ " ldr r0, ._823 + 8\n"
+ " add r1, r6, #0\n"
+ " ldr r2, [sp, #0x4]\n"
+ " mov r3, r8\n"
+ " bl InitWindow\n"
+ " ldr r0, ._823 + 8\n"
+ " bl sub_8002F44\n"
+ " b ._848\n"
+ "._824:\n"
+ " .align 2, 0\n"
+ "._823:\n"
+ " .word gBattleTextBuff1\n"
+ " .word UnkDebug0+0x6c\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word gUnknown_02023A14+0x52\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word gSpeciesNames\n"
+ "._817:\n"
+ " ldr r6, ._826\n"
+ " ldr r3, ._826 + 4\n"
+ " lsl r1, r7, #0x1\n"
+ " ldr r0, ._826 + 8\n"
+ " ldrb r2, [r0]\n"
+ " mov r0, #0x46\n"
+ " mul r0, r0, r2\n"
+ " add r1, r1, r0\n"
+ " add r1, r1, r3\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r1, r2]\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " b ._825\n"
+ "._827:\n"
+ " .align 2, 0\n"
+ "._826:\n"
+ " .word gBattleTextBuff1\n"
+ " .word gUnknown_02023A14+0x52\n"
+ " .word gUnknown_Debug_03004360\n"
+ "._814:\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x18\n"
+ " bl debug_sub_8010A7C\n"
+ " ldr r6, ._830\n"
+ " ldr r1, ._830 + 4\n"
+ " mov sl, r1\n"
+ " ldr r4, ._830 + 8\n"
+ " ldr r2, [sp, #0x8]\n"
+ " add r1, r2, r7\n"
+ " lsl r1, r1, #0x1\n"
+ " add r0, r1, r4\n"
+ " ldrh r2, [r0]\n"
+ " add r0, r4, #2\n"
+ " add r0, r1, r0\n"
+ " ldrb r3, [r0]\n"
+ " add r4, r4, #0x4\n"
+ " add r1, r1, r4\n"
+ " ldrb r0, [r1]\n"
+ " str r0, [sp]\n"
+ " add r0, r6, #0\n"
+ " mov r1, sl\n"
+ " bl InitWindow\n"
+ " add r0, r6, #0\n"
+ " bl sub_8002F44\n"
+ " lsl r4, r7, #0x1\n"
+ " ldr r5, ._830 + 12\n"
+ " ldrb r0, [r5]\n"
+ " mov r1, #0x46\n"
+ " mul r0, r0, r1\n"
+ " add r0, r4, r0\n"
+ " ldr r2, ._830 + 16\n"
+ " add r0, r0, r2\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r0, r2]\n"
+ " mov r0, sl\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r2, #0xd3\n"
+ " lsl r2, r2, #0x1\n"
+ " ldrb r3, [r5]\n"
+ " lsl r3, r3, #0x5\n"
+ " add r3, r3, #0x19\n"
+ " lsl r3, r3, #0x18\n"
+ " lsr r3, r3, #0x18\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " add r0, r6, #0\n"
+ " mov r1, sl\n"
+ " bl InitWindow\n"
+ " add r0, r6, #0\n"
+ " bl sub_8002F44\n"
+ " mov r0, #0xff\n"
+ " mov r1, sl\n"
+ " strb r0, [r1]\n"
+ " ldrb r0, [r5]\n"
+ " mov r2, #0x46\n"
+ " mul r0, r0, r2\n"
+ " add r4, r4, r0\n"
+ " ldr r0, ._830 + 16\n"
+ " add r4, r4, r0\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r4, r1]\n"
+ " cmp r0, #0\n"
+ " beq ._828 @cond_branch\n"
+ " ldrh r0, [r4]\n"
+ " bl ItemId_GetItem\n"
+ " add r1, r0, #0\n"
+ " mov r0, sl\n"
+ " bl StringAppend\n"
+ " b ._829\n"
+ "._831:\n"
+ " .align 2, 0\n"
+ "._830:\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word gBattleTextBuff1\n"
+ " .word UnkDebug0+0x6c\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word gUnknown_02023A14+0x52\n"
+ "._828:\n"
+ " ldr r1, ._833\n"
+ " mov r0, sl\n"
+ " bl StringAppend\n"
+ "._829:\n"
+ " ldr r6, ._833 + 4\n"
+ " ldr r1, ._833 + 8\n"
+ " ldr r5, ._833 + 12\n"
+ " ldr r2, [sp, #0x8]\n"
+ " add r4, r2, r7\n"
+ " lsl r4, r4, #0x1\n"
+ " add r0, r4, r5\n"
+ " ldrh r2, [r0]\n"
+ " add r0, r5, #2\n"
+ " add r0, r4, r0\n"
+ " ldrb r3, [r0]\n"
+ " add r5, r5, #0x4\n"
+ " add r4, r4, r5\n"
+ " ldrb r0, [r4]\n"
+ " str r0, [sp]\n"
+ " add r0, r6, #0\n"
+ " bl InitWindow\n"
+ " add r0, r6, #0\n"
+ " bl sub_8002F44\n"
+ " b ._848\n"
+ "._834:\n"
+ " .align 2, 0\n"
+ "._833:\n"
+ " .word UnkDebug0+0x26c\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word gBattleTextBuff1\n"
+ " .word UnkDebug0+0x6c\n"
+ "._816:\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x4\n"
+ " bl debug_sub_8010A7C\n"
+ " ldr r5, ._839\n"
+ " ldr r6, ._839 + 4\n"
+ " ldr r4, ._839 + 8\n"
+ " ldr r0, [sp, #0x8]\n"
+ " add r1, r0, r7\n"
+ " lsl r1, r1, #0x1\n"
+ " add r0, r1, r4\n"
+ " ldrh r2, [r0]\n"
+ " add r0, r4, #2\n"
+ " add r0, r1, r0\n"
+ " ldrb r3, [r0]\n"
+ " add r4, r4, #0x4\n"
+ " add r1, r1, r4\n"
+ " ldrb r0, [r1]\n"
+ " str r0, [sp]\n"
+ " add r0, r5, #0\n"
+ " add r1, r6, #0\n"
+ " bl InitWindow\n"
+ " add r0, r5, #0\n"
+ " bl sub_8002F44\n"
+ " mov r4, #0x0\n"
+ " ldr r3, ._839 + 12\n"
+ " lsl r1, r7, #0x1\n"
+ " ldr r0, ._839 + 16\n"
+ " ldrb r2, [r0]\n"
+ " mov r0, #0x46\n"
+ " mul r0, r0, r2\n"
+ " add r1, r1, r0\n"
+ " add r1, r1, r3\n"
+ " mov r2, #0x0\n"
+ " ldsh r0, [r1, r2]\n"
+ " cmp r0, #0x1\n"
+ " beq ._835 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bgt ._836 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._837 @cond_branch\n"
+ " b ._843\n"
+ "._840:\n"
+ " .align 2, 0\n"
+ "._839:\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word gBattleTextBuff1\n"
+ " .word UnkDebug0+0x6c\n"
+ " .word gUnknown_02023A14+0x52\n"
+ " .word gUnknown_Debug_03004360\n"
+ "._836:\n"
+ " cmp r0, #0x2\n"
+ " beq ._841 @cond_branch\n"
+ " cmp r0, #0x3\n"
+ " beq ._842 @cond_branch\n"
+ " b ._843\n"
+ "._837:\n"
+ " mov r0, #0xb5\n"
+ " b ._844\n"
+ "._835:\n"
+ " mov r0, #0xb6\n"
+ "._844:\n"
+ " strb r0, [r6]\n"
+ " mov r4, #0x1\n"
+ " b ._847\n"
+ "._841:\n"
+ " mov r0, #0xb5\n"
+ " b ._846\n"
+ "._842:\n"
+ " mov r0, #0xb6\n"
+ "._846:\n"
+ " strb r0, [r6]\n"
+ " strb r0, [r6, #0x1]\n"
+ " mov r4, #0x2\n"
+ " b ._847\n"
+ "._843:\n"
+ " ldr r2, ._849\n"
+ " add r1, r4, r2\n"
+ " mov r0, #0xac\n"
+ " strb r0, [r1]\n"
+ " add r4, r4, #0x1\n"
+ " add r6, r2, #0\n"
+ "._847:\n"
+ " add r1, r4, r6\n"
+ " mov r0, #0xff\n"
+ " strb r0, [r1]\n"
+ "._825:\n"
+ " ldr r5, ._849 + 4\n"
+ " ldr r4, ._849 + 8\n"
+ " ldr r0, [sp, #0x8]\n"
+ " add r1, r0, r7\n"
+ " lsl r1, r1, #0x1\n"
+ " add r0, r1, r4\n"
+ " ldrh r2, [r0]\n"
+ " add r0, r4, #2\n"
+ " add r0, r1, r0\n"
+ " ldrb r3, [r0]\n"
+ " add r4, r4, #0x4\n"
+ " add r1, r1, r4\n"
+ " ldrb r0, [r1]\n"
+ " str r0, [sp]\n"
+ " add r0, r5, #0\n"
+ " add r1, r6, #0\n"
+ " bl InitWindow\n"
+ " add r0, r5, #0\n"
+ " bl sub_8002F44\n"
+ " b ._848\n"
+ "._850:\n"
+ " .align 2, 0\n"
+ "._849:\n"
+ " .word gBattleTextBuff1\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word UnkDebug0+0x6c\n"
+ "._815:\n"
+ " ldr r6, ._851\n"
+ " ldr r3, ._851 + 4\n"
+ " lsl r1, r7, #0x1\n"
+ " ldr r0, ._851 + 8\n"
+ " ldrb r2, [r0]\n"
+ " mov r0, #0x46\n"
+ " mul r0, r0, r2\n"
+ " add r1, r1, r0\n"
+ " add r1, r1, r3\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r1, r2]\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x1\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " ldr r5, ._851 + 12\n"
+ " ldr r4, ._851 + 16\n"
+ " lsl r1, r7, #0x2\n"
+ " add r1, r1, r7\n"
+ " lsl r1, r1, #0x1\n"
+ " add r0, r1, r4\n"
+ " ldrh r2, [r0]\n"
+ " add r0, r4, #2\n"
+ " add r0, r1, r0\n"
+ " ldrb r3, [r0]\n"
+ " add r4, r4, #0x4\n"
+ " add r1, r1, r4\n"
+ " ldrb r0, [r1]\n"
+ " str r0, [sp]\n"
+ " add r0, r5, #0\n"
+ " add r1, r6, #0\n"
+ " bl InitWindow\n"
+ " add r0, r5, #0\n"
+ " bl sub_8002F44\n"
+ "._848:\n"
+ " add sp, sp, #0xc\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._852:\n"
+ " .align 2, 0\n"
+ "._851:\n"
+ " .word gBattleTextBuff1\n"
+ " .word gUnknown_02023A14+0x52\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word UnkDebug0+0x6c\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8012294()
+{
+ 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"
+ " ldr r2, ._854\n"
+ " ldr r0, ._854 + 4\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldrb r2, [r2]\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " cmp r5, #0x1d\n"
+ " bhi ._853 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x18\n"
+ " bl debug_sub_8010A7C\n"
+ " ldr r0, ._854 + 8\n"
+ " mov sl, r0\n"
+ " ldr r1, ._854 + 12\n"
+ " mov r9, r1\n"
+ " ldr r2, ._854 + 16\n"
+ " mov r8, r2\n"
+ " ldr r7, ._854 + 20\n"
+ " ldrb r1, [r7]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x1\n"
+ " add r1, r0, r2\n"
+ " ldrh r2, [r1]\n"
+ " ldr r3, ._854 + 24\n"
+ " add r1, r0, r3\n"
+ " ldrb r3, [r1]\n"
+ " ldr r1, ._854 + 28\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0]\n"
+ " str r0, [sp]\n"
+ " mov r0, sl\n"
+ " mov r1, r9\n"
+ " bl InitWindow\n"
+ " mov r0, sl\n"
+ " bl sub_8002F44\n"
+ " ldrb r4, [r7]\n"
+ " lsl r4, r4, #0x1\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x5\n"
+ " bl gScriptFuncs_End+0x4358\n"
+ " add r5, r0, #0\n"
+ " lsl r5, r5, #0x18\n"
+ " lsr r5, r5, #0x15\n"
+ " add r4, r4, r5\n"
+ " ldr r6, ._854 + 32\n"
+ " ldrb r1, [r6]\n"
+ " lsl r0, r1, #0x1\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x4\n"
+ " add r4, r4, r0\n"
+ " ldr r2, ._854 + 36\n"
+ " add r4, r4, r2\n"
+ " mov r3, #0x0\n"
+ " ldsh r1, [r4, r3]\n"
+ " mov r0, r9\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r2, #0xd3\n"
+ " lsl r2, r2, #0x1\n"
+ " ldrb r3, [r6]\n"
+ " lsl r3, r3, #0x5\n"
+ " add r3, r3, #0x19\n"
+ " lsl r3, r3, #0x18\n"
+ " lsr r3, r3, #0x18\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " mov r0, sl\n"
+ " mov r1, r9\n"
+ " bl InitWindow\n"
+ " mov r0, sl\n"
+ " bl sub_8002F44\n"
+ " mov r0, #0xff\n"
+ " mov r1, r9\n"
+ " strb r0, [r1]\n"
+ " ldrb r1, [r7]\n"
+ " lsl r1, r1, #0x1\n"
+ " add r1, r1, r5\n"
+ " ldrb r2, [r6]\n"
+ " lsl r0, r2, #0x1\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x4\n"
+ " add r1, r1, r0\n"
+ " ldr r2, ._854 + 36\n"
+ " add r1, r1, r2\n"
+ " mov r3, #0x0\n"
+ " ldsh r1, [r1, r3]\n"
+ " mov r0, #0xd\n"
+ " mul r1, r1, r0\n"
+ " ldr r0, ._854 + 40\n"
+ " add r1, r1, r0\n"
+ " mov r0, r9\n"
+ " bl StringAppend\n"
+ " ldrb r1, [r7]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x1\n"
+ " add r8, r8, r0\n"
+ " mov r1, r8\n"
+ " ldrh r2, [r1]\n"
+ " ldr r3, ._854 + 24\n"
+ " add r1, r0, r3\n"
+ " ldrb r3, [r1]\n"
+ " ldr r1, ._854 + 28\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0]\n"
+ " str r0, [sp]\n"
+ " mov r0, sl\n"
+ " mov r1, r9\n"
+ " bl InitWindow\n"
+ " mov r0, sl\n"
+ " bl sub_8002F44\n"
+ "._853:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._855:\n"
+ " .align 2, 0\n"
+ "._854:\n"
+ " .word gUnknown_Debug_030043A0\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word gBattleTextBuff1\n"
+ " .word UnkDebug0+0x1ac\n"
+ " .word gUnknown_Debug_030043A8\n"
+ " .word UnkDebug0+0x1ae\n"
+ " .word UnkDebug0+0x1b0\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word gUnknown_02023A14+0xde\n"
+ " .word gMoveNames\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_80123D8()
+{
+ 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"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " cmp r5, #0x1d\n"
+ " bhi ._856 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x12\n"
+ " bl debug_sub_8010A7C\n"
+ " ldr r4, ._858\n"
+ " ldr r0, ._858 + 4\n"
+ " mov r8, r0\n"
+ " ldr r6, ._858 + 8\n"
+ " ldrh r1, [r6]\n"
+ " mov sl, r1\n"
+ " ldrb r7, [r6, #0x2]\n"
+ " ldrb r2, [r6, #0x4]\n"
+ " mov r9, r2\n"
+ " str r2, [sp]\n"
+ " add r0, r4, #0\n"
+ " mov r1, r8\n"
+ " mov r2, sl\n"
+ " add r3, r7, #0\n"
+ " bl InitWindow\n"
+ " add r0, r4, #0\n"
+ " bl sub_8002F44\n"
+ " lsl r5, r5, #0x1\n"
+ " ldr r1, ._858 + 12\n"
+ " ldrb r0, [r1]\n"
+ " mov r2, #0x46\n"
+ " mul r0, r0, r2\n"
+ " add r0, r5, r0\n"
+ " ldr r1, ._858 + 16\n"
+ " add r0, r0, r1\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r0, r2]\n"
+ " lsl r0, r1, #0x3\n"
+ " sub r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._858 + 20\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0, #0x16]\n"
+ " mov r2, #0xd\n"
+ " add r1, r0, #0\n"
+ " mul r1, r1, r2\n"
+ " ldr r0, ._858 + 24\n"
+ " add r1, r1, r0\n"
+ " mov r0, r8\n"
+ " bl StringCopy\n"
+ " mov r1, r9\n"
+ " str r1, [sp]\n"
+ " add r0, r4, #0\n"
+ " mov r1, r8\n"
+ " mov r2, sl\n"
+ " add r3, r7, #0\n"
+ " bl InitWindow\n"
+ " add r0, r4, #0\n"
+ " bl sub_8002F44\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x12\n"
+ " bl debug_sub_8010A7C\n"
+ " ldrh r2, [r6, #0x6]\n"
+ " mov r9, r2\n"
+ " ldrb r0, [r6, #0x8]\n"
+ " mov sl, r0\n"
+ " ldrb r6, [r6, #0xa]\n"
+ " str r6, [sp]\n"
+ " add r0, r4, #0\n"
+ " mov r1, r8\n"
+ " mov r3, sl\n"
+ " bl InitWindow\n"
+ " add r0, r4, #0\n"
+ " bl sub_8002F44\n"
+ " ldr r1, ._858 + 12\n"
+ " ldrb r0, [r1]\n"
+ " mov r2, #0x46\n"
+ " mul r0, r0, r2\n"
+ " add r5, r5, r0\n"
+ " ldr r0, ._858 + 16\n"
+ " add r5, r5, r0\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r5, r2]\n"
+ " lsl r0, r1, #0x3\n"
+ " sub r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._858 + 20\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0, #0x17]\n"
+ " mov r2, #0xd\n"
+ " add r1, r0, #0\n"
+ " mul r1, r1, r2\n"
+ " ldr r0, ._858 + 24\n"
+ " add r1, r1, r0\n"
+ " mov r0, r8\n"
+ " bl StringCopy\n"
+ " str r6, [sp]\n"
+ " add r0, r4, #0\n"
+ " mov r1, r8\n"
+ " mov r2, r9\n"
+ " mov r3, sl\n"
+ " bl InitWindow\n"
+ " add r0, r4, #0\n"
+ " bl sub_8002F44\n"
+ " b ._857\n"
+ "._859:\n"
+ " .align 2, 0\n"
+ "._858:\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word gBattleTextBuff1\n"
+ " .word UnkDebug0+0x1d4\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word gUnknown_02023A14+0x52\n"
+ " .word gBaseStats\n"
+ " .word gAbilityNames\n"
+ "._856:\n"
+ " ldr r6, ._860\n"
+ " ldr r1, ._860 + 4\n"
+ " add r0, r6, #0\n"
+ " bl StringCopy\n"
+ " ldr r5, ._860 + 8\n"
+ " ldr r4, ._860 + 12\n"
+ " ldrh r2, [r4]\n"
+ " ldrb r3, [r4, #0x2]\n"
+ " ldrb r0, [r4, #0x4]\n"
+ " str r0, [sp]\n"
+ " add r0, r5, #0\n"
+ " add r1, r6, #0\n"
+ " bl InitWindow\n"
+ " add r0, r5, #0\n"
+ " bl sub_8002F44\n"
+ " ldrh r2, [r4, #0x6]\n"
+ " ldrb r3, [r4, #0x8]\n"
+ " ldrb r0, [r4, #0xa]\n"
+ " str r0, [sp]\n"
+ " add r0, r5, #0\n"
+ " add r1, r6, #0\n"
+ " bl InitWindow\n"
+ " add r0, r5, #0\n"
+ " bl sub_8002F44\n"
+ "._857:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._861:\n"
+ " .align 2, 0\n"
+ "._860:\n"
+ " .word gBattleTextBuff1\n"
+ " .word gAbilityNames\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word UnkDebug0+0x1d4\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8012540()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " ldr r5, ._862\n"
+ " ldr r0, ._862 + 4\n"
+ " add r0, r0, #0x44\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r0, r2]\n"
+ " add r0, r5, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x1\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " ldr r4, ._862 + 8\n"
+ " ldr r1, ._862 + 12\n"
+ " mov r3, #0x9b\n"
+ " lsl r3, r3, #0x1\n"
+ " add r0, r1, r3\n"
+ " ldrh r2, [r0]\n"
+ " mov r6, #0x9c\n"
+ " lsl r6, r6, #0x1\n"
+ " add r0, r1, r6\n"
+ " ldrb r3, [r0]\n"
+ " add r6, r6, #0x2\n"
+ " add r0, r1, r6\n"
+ " ldrb r0, [r0]\n"
+ " str r0, [sp]\n"
+ " add r0, r4, #0\n"
+ " add r1, r5, #0\n"
+ " bl InitWindow\n"
+ " add r0, r4, #0\n"
+ " bl sub_8002F44\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._863:\n"
+ " .align 2, 0\n"
+ "._862:\n"
+ " .word gBattleTextBuff1\n"
+ " .word gUnknown_02023A14+0x52\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word UnkDebug0+0x6c\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_nullsub_3()
+{
+ asm(
+ " bx lr\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_80125A0()
+{
+ asm(
+ " push {r4, lr}\n"
+ " ldr r4, ._864\n"
+ " ldr r3, ._864 + 4\n"
+ " ldr r2, ._864 + 8\n"
+ " ldr r0, ._864 + 12\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldrb r2, [r2]\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._864 + 16\n"
+ " ldrb r2, [r1]\n"
+ " mov r1, #0x8c\n"
+ " mul r1, r1, r2\n"
+ " add r0, r0, r1\n"
+ " add r0, r0, r3\n"
+ " ldr r0, [r0]\n"
+ " add r0, r0, r4\n"
+ " mov r1, #0x6d\n"
+ " strb r1, [r0]\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._865:\n"
+ " .align 2, 0\n"
+ "._864:\n"
+ " .word +0x2000000\n"
+ " .word UnkDebug0+0x2c8\n"
+ " .word gUnknown_Debug_030043A0\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gUnknown_Debug_03004360\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_80125E4()
+{
+ asm(
+ " push {r4, lr}\n"
+ " ldr r4, ._866\n"
+ " ldr r3, ._866 + 4\n"
+ " ldr r2, ._866 + 8\n"
+ " ldr r0, ._866 + 12\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldrb r2, [r2]\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._866 + 16\n"
+ " ldrb r2, [r1]\n"
+ " mov r1, #0x8c\n"
+ " mul r1, r1, r2\n"
+ " add r0, r0, r1\n"
+ " add r0, r0, r3\n"
+ " ldr r0, [r0]\n"
+ " add r0, r0, r4\n"
+ " mov r1, #0x81\n"
+ " strb r1, [r0]\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._867:\n"
+ " .align 2, 0\n"
+ "._866:\n"
+ " .word +0x2000000\n"
+ " .word UnkDebug0+0x2c8\n"
+ " .word gUnknown_Debug_030043A0\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gUnknown_Debug_03004360\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8012628()
+{
+ asm(
+ " ldr r3, ._868\n"
+ " ldr r2, ._868 + 4\n"
+ " ldr r0, ._868 + 8\n"
+ " ldrb r1, [r0]\n"
+ " lsl r1, r1, #0x2\n"
+ " ldr r0, ._868 + 12\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x4\n"
+ " add r1, r1, r0\n"
+ " add r1, r1, r2\n"
+ " ldr r0, [r1]\n"
+ " add r0, r0, r3\n"
+ " mov r1, #0x6d\n"
+ " strb r1, [r0]\n"
+ " bx lr\n"
+ "._869:\n"
+ " .align 2, 0\n"
+ "._868:\n"
+ " .word +0x2000000\n"
+ " .word UnkDebug0+0x3e0\n"
+ " .word gUnknown_Debug_030043A8\n"
+ " .word gUnknown_Debug_03004360\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8012658()
+{
+ asm(
+ " ldr r3, ._870\n"
+ " ldr r2, ._870 + 4\n"
+ " ldr r0, ._870 + 8\n"
+ " ldrb r1, [r0]\n"
+ " lsl r1, r1, #0x2\n"
+ " ldr r0, ._870 + 12\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x4\n"
+ " add r1, r1, r0\n"
+ " add r1, r1, r2\n"
+ " ldr r0, [r1]\n"
+ " add r0, r0, r3\n"
+ " mov r1, #0x81\n"
+ " strb r1, [r0]\n"
+ " bx lr\n"
+ "._871:\n"
+ " .align 2, 0\n"
+ "._870:\n"
+ " .word +0x2000000\n"
+ " .word UnkDebug0+0x3e0\n"
+ " .word gUnknown_Debug_030043A8\n"
+ " .word gUnknown_Debug_03004360\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8012688()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " mov r6, r8\n"
+ " push {r6}\n"
+ " add sp, sp, #0xfffffff4\n"
+ " mov r1, #0x0\n"
+ " mov r4, #0xcd\n"
+ " lsl r4, r4, #0x1\n"
+ " ldr r3, ._873\n"
+ " mov r2, #0x0\n"
+ "._872:\n"
+ " add r0, r1, r3\n"
+ " strb r2, [r0]\n"
+ " add r1, r1, #0x1\n"
+ " cmp r1, r4\n"
+ " ble ._872 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " bl SetHBlankCallback\n"
+ " mov r0, #0x0\n"
+ " bl SetVBlankCallback\n"
+ " mov r5, #0x0\n"
+ " str r5, [sp, #0x8]\n"
+ " ldr r1, ._873 + 4\n"
+ " add r0, sp, #0x8\n"
+ " str r0, [r1]\n"
+ " mov r0, #0xc0\n"
+ " lsl r0, r0, #0x13\n"
+ " str r0, [r1, #0x4]\n"
+ " ldr r0, ._873 + 8\n"
+ " str r0, [r1, #0x8]\n"
+ " ldr r0, [r1, #0x8]\n"
+ " ldr r0, ._873 + 12\n"
+ " strh r5, [r0]\n"
+ " sub r0, r0, #0xc\n"
+ " strh r5, [r0]\n"
+ " add r0, r0, #0x4\n"
+ " strh r5, [r0]\n"
+ " sub r0, r0, #0x2\n"
+ " strh r5, [r0]\n"
+ " add r0, r0, #0x4\n"
+ " strh r5, [r0]\n"
+ " add r0, r0, #0x2\n"
+ " strh r5, [r0]\n"
+ " add r0, r0, #0x2\n"
+ " strh r5, [r0]\n"
+ " ldr r4, ._873 + 16\n"
+ " add r0, r4, #0\n"
+ " bl SetUpWindowConfig\n"
+ " bl ResetPaletteFade\n"
+ " ldr r0, ._873 + 20\n"
+ " strh r5, [r0]\n"
+ " ldr r1, ._873 + 24\n"
+ " mov r0, #0xa0\n"
+ " strh r0, [r1]\n"
+ " ldr r0, ._873 + 28\n"
+ " strh r5, [r0]\n"
+ " ldr r0, ._873 + 32\n"
+ " strh r5, [r0]\n"
+ " ldr r0, ._873 + 36\n"
+ " strh r5, [r0]\n"
+ " ldr r0, ._873 + 40\n"
+ " strh r5, [r0]\n"
+ " ldr r0, ._873 + 44\n"
+ " strh r5, [r0]\n"
+ " ldr r0, ._873 + 48\n"
+ " strh r5, [r0]\n"
+ " ldr r1, ._873 + 52\n"
+ " mov r0, #0x9\n"
+ " strb r0, [r1]\n"
+ " bl sub_800D6D4\n"
+ " bl sub_800DAB8\n"
+ " bl ResetSpriteData\n"
+ " bl ResetTasks\n"
+ " bl FreeAllSpritePalettes\n"
+ " ldr r1, ._873 + 56\n"
+ " mov r0, #0x4\n"
+ " strb r0, [r1]\n"
+ " ldr r6, ._873 + 60\n"
+ " mov r0, #0x1\n"
+ " strh r0, [r6]\n"
+ " ldr r0, ._873 + 64\n"
+ " add r1, r4, #0\n"
+ " bl InitWindowFromConfig\n"
+ " ldrh r2, [r6]\n"
+ " lsl r0, r2, #0x3\n"
+ " ldr r1, ._873 + 68\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._873 + 72\n"
+ " mov r8, r1\n"
+ " lsl r2, r2, #0x2\n"
+ " add r2, r2, r8\n"
+ " ldrb r1, [r2]\n"
+ " ldrb r2, [r2, #0x1]\n"
+ " mov r3, #0x80\n"
+ " lsl r3, r3, #0x12\n"
+ " ldr r4, ._873 + 76\n"
+ " ldr r4, [r4, #0x4]\n"
+ " str r4, [sp]\n"
+ " ldrh r4, [r6]\n"
+ " str r4, [sp, #0x4]\n"
+ " bl DecompressPicFromTable_2\n"
+ " ldr r1, ._873 + 80\n"
+ " ldrh r0, [r6]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov r1, #0x88\n"
+ " lsl r1, r1, #0x1\n"
+ " mov r2, #0x20\n"
+ " bl LoadCompressedPalette\n"
+ " ldrh r0, [r6]\n"
+ " mov r1, #0x1\n"
+ " bl GetMonSpriteTemplate_803C56C\n"
+ " ldr r0, ._873 + 84\n"
+ " ldrh r1, [r6]\n"
+ " lsl r1, r1, #0x2\n"
+ " add r1, r1, r8\n"
+ " ldrb r2, [r1, #0x1]\n"
+ " add r2, r2, #0x28\n"
+ " mov r1, #0xb0\n"
+ " mov r3, #0x28\n"
+ " bl CreateSprite\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " ldr r3, ._873 + 88\n"
+ " lsl r1, r4, #0x4\n"
+ " add r1, r1, r4\n"
+ " lsl r1, r1, #0x2\n"
+ " add r0, r3, #0\n"
+ " add r0, r0, #0x1c\n"
+ " add r0, r1, r0\n"
+ " ldr r2, ._873 + 92\n"
+ " str r2, [r0]\n"
+ " add r1, r1, r3\n"
+ " ldrb r2, [r1, #0x5]\n"
+ " mov r0, #0xf\n"
+ " and r0, r0, r2\n"
+ " mov r2, #0x10\n"
+ " orr r0, r0, r2\n"
+ " strb r0, [r1, #0x5]\n"
+ " mov r1, #0x80\n"
+ " lsl r1, r1, #0x13\n"
+ " mov r2, #0xfa\n"
+ " lsl r2, r2, #0x5\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " ldr r0, ._873 + 96\n"
+ " bl SetHBlankCallback\n"
+ " ldr r0, ._873 + 100\n"
+ " bl SetVBlankCallback\n"
+ " bl gScriptFuncs_End+0x14f4\n"
+ " ldr r0, ._873 + 104\n"
+ " mov r1, #0x0\n"
+ " bl CreateTask\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r2, ._873 + 108\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r2\n"
+ " strh r5, [r1, #0x8]\n"
+ " strh r4, [r1, #0xa]\n"
+ " ldr r0, ._873 + 112\n"
+ " bl SetMainCallback2\n"
+ " add sp, sp, #0xc\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._874:\n"
+ " .align 2, 0\n"
+ "._873:\n"
+ " .word gUnknown_02023A14+0x13e\n"
+ " .word 0x40000d4\n"
+ " .word 0x85006000\n"
+ " .word 0x400004c\n"
+ " .word gWindowConfig_81E6C58\n"
+ " .word gUnknown_030042A4\n"
+ " .word gUnknown_030042A0\n"
+ " .word gUnknown_030042C0\n"
+ " .word gUnknown_030041B4\n"
+ " .word gUnknown_03004288\n"
+ " .word gUnknown_03004280\n"
+ " .word gUnknown_030041B0\n"
+ " .word gUnknown_030041B8\n"
+ " .word gBattleTerrain\n"
+ " .word gReservedSpritePaletteCount\n"
+ " .word gCurrentMove\n"
+ " .word gUnknown_03004210\n"
+ " .word gMonFrontPicTable\n"
+ " .word gMonFrontPicCoords\n"
+ " .word gUnknown_081FAF4C\n"
+ " .word gMonPaletteTable\n"
+ " .word gUnknown_02024E8C\n"
+ " .word gSprites\n"
+ " .word nullsub_37+1\n"
+ " .word debug_nullsub_45+1\n"
+ " .word debug_sub_8011DD4+1\n"
+ " .word debug_sub_8012D10+1\n"
+ " .word gTasks\n"
+ " .word debug_sub_8012878+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8012878()
+{
+ asm(
+ " push {lr}\n"
+ " bl AnimateSprites\n"
+ " bl BuildOamBuffer\n"
+ " ldr r0, ._876\n"
+ " bl sub_800374C\n"
+ " bl UpdatePaletteFade\n"
+ " bl RunTasks\n"
+ " ldr r0, ._876 + 4\n"
+ " ldrh r1, [r0, #0x2c]\n"
+ " mov r0, #0x82\n"
+ " lsl r0, r0, #0x1\n"
+ " cmp r1, r0\n"
+ " bne ._875 @cond_branch\n"
+ " ldr r0, ._876 + 8\n"
+ " bl SetMainCallback2\n"
+ "._875:\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._877:\n"
+ " .align 2, 0\n"
+ "._876:\n"
+ " .word gUnknown_03004210\n"
+ " .word gMain\n"
+ " .word debug_sub_80108B8+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_80128B4()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " mov r6, r8\n"
+ " push {r6}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x9\n"
+ " bl debug_sub_8010A7C\n"
+ " ldr r5, ._878\n"
+ " ldr r4, ._878 + 4\n"
+ " mov r0, #0x23\n"
+ " mov r8, r0\n"
+ " str r0, [sp]\n"
+ " add r0, r5, #0\n"
+ " add r1, r4, #0\n"
+ " mov r2, #0x90\n"
+ " mov r3, #0x2\n"
+ " bl InitWindow\n"
+ " add r0, r5, #0\n"
+ " bl sub_8002F44\n"
+ " ldr r6, ._878 + 8\n"
+ " ldrh r1, [r6]\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r4, #0x3]\n"
+ " mov r0, #0xff\n"
+ " strb r0, [r4, #0x4]\n"
+ " ldrh r1, [r6]\n"
+ " mov r0, #0xb\n"
+ " mul r1, r1, r0\n"
+ " ldr r0, ._878 + 12\n"
+ " add r1, r1, r0\n"
+ " add r0, r4, #0\n"
+ " bl StringAppend\n"
+ " mov r0, r8\n"
+ " str r0, [sp]\n"
+ " add r0, r5, #0\n"
+ " add r1, r4, #0\n"
+ " mov r2, #0x90\n"
+ " mov r3, #0x2\n"
+ " bl InitWindow\n"
+ " add r0, r5, #0\n"
+ " bl sub_8002F44\n"
+ " add sp, sp, #0x4\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._879:\n"
+ " .align 2, 0\n"
+ "._878:\n"
+ " .word gUnknown_03004210\n"
+ " .word gBattleTextBuff1\n"
+ " .word gCurrentMove\n"
+ " .word gSpeciesNames\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8012938()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " mov r6, sl\n"
+ " mov r5, r9\n"
+ " mov r4, r8\n"
+ " push {r4, r5, r6}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " add r5, r0, #0\n"
+ " lsl r5, r5, #0x18\n"
+ " lsr r5, r5, #0x18\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x7\n"
+ " bl debug_sub_8010A7C\n"
+ " ldr r6, ._880\n"
+ " ldr r4, ._880 + 4\n"
+ " mov r0, #0x25\n"
+ " mov r8, r0\n"
+ " str r0, [sp]\n"
+ " add r0, r6, #0\n"
+ " add r1, r4, #0\n"
+ " mov r2, #0xa2\n"
+ " mov r3, #0x2\n"
+ " bl InitWindow\n"
+ " add r0, r6, #0\n"
+ " bl sub_8002F44\n"
+ " ldr r1, ._880 + 8\n"
+ " add r0, r4, #0\n"
+ " bl StringCopy\n"
+ " add r0, r4, #4\n"
+ " ldr r1, ._880 + 12\n"
+ " mov sl, r1\n"
+ " ldr r2, ._880 + 16\n"
+ " mov r9, r2\n"
+ " ldrh r1, [r2]\n"
+ " sub r1, r1, #0x1\n"
+ " add r1, r1, sl\n"
+ " ldrb r1, [r1]\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, r8\n"
+ " str r0, [sp]\n"
+ " add r0, r6, #0\n"
+ " add r1, r4, #0\n"
+ " mov r2, #0xa2\n"
+ " mov r3, #0x2\n"
+ " bl InitWindow\n"
+ " add r0, r6, #0\n"
+ " bl sub_8002F44\n"
+ " ldr r2, ._880 + 20\n"
+ " ldr r1, ._880 + 24\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0xa\n"
+ " ldsh r0, [r0, r1]\n"
+ " lsl r1, r0, #0x4\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x2\n"
+ " add r1, r1, r2\n"
+ " mov r2, r9\n"
+ " ldrh r0, [r2]\n"
+ " sub r0, r0, #0x1\n"
+ " add r0, r0, sl\n"
+ " ldrb r0, [r0]\n"
+ " neg r0, r0\n"
+ " strh r0, [r1, #0x26]\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}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._881:\n"
+ " .align 2, 0\n"
+ "._880:\n"
+ " .word gUnknown_03004210\n"
+ " .word gBattleTextBuff1\n"
+ " .word UnkDebug0+0x400\n"
+ " .word gUnknown_02023A14+0x13e\n"
+ " .word gCurrentMove\n"
+ " .word gSprites\n"
+ " .word gTasks\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_80129F8()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " mov r6, r8\n"
+ " push {r6}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " add r5, r0, #0\n"
+ " lsl r5, r5, #0x18\n"
+ " lsr r5, r5, #0x18\n"
+ " ldr r6, ._882\n"
+ " ldrh r2, [r6]\n"
+ " lsl r0, r2, #0x3\n"
+ " ldr r1, ._882 + 4\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._882 + 8\n"
+ " mov r8, r1\n"
+ " lsl r2, r2, #0x2\n"
+ " add r2, r2, r8\n"
+ " ldrb r1, [r2]\n"
+ " ldrb r2, [r2, #0x1]\n"
+ " mov r3, #0x80\n"
+ " lsl r3, r3, #0x12\n"
+ " ldr r4, ._882 + 12\n"
+ " ldr r4, [r4, #0x4]\n"
+ " str r4, [sp]\n"
+ " ldrh r4, [r6]\n"
+ " str r4, [sp, #0x4]\n"
+ " bl DecompressPicFromTable_2\n"
+ " ldr r1, ._882 + 16\n"
+ " ldrh r0, [r6]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov r1, #0x88\n"
+ " lsl r1, r1, #0x1\n"
+ " mov r2, #0x20\n"
+ " bl LoadCompressedPalette\n"
+ " ldr r4, ._882 + 20\n"
+ " ldr r0, ._882 + 24\n"
+ " lsl r2, r5, #0x2\n"
+ " add r2, r2, r5\n"
+ " lsl r2, r2, #0x3\n"
+ " add r2, r2, r0\n"
+ " mov r1, #0xa\n"
+ " ldsh r0, [r2, r1]\n"
+ " lsl r1, r0, #0x4\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x2\n"
+ " add r1, r1, r4\n"
+ " ldrh r0, [r6]\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r8\n"
+ " ldrb r0, [r0, #0x1]\n"
+ " add r0, r0, #0x28\n"
+ " strh r0, [r1, #0x22]\n"
+ " mov r1, #0xa\n"
+ " ldsh r0, [r2, r1]\n"
+ " lsl r1, r0, #0x4\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x2\n"
+ " add r1, r1, r4\n"
+ " ldr r3, ._882 + 28\n"
+ " ldrh r0, [r6]\n"
+ " sub r0, r0, #0x1\n"
+ " add r0, r0, r3\n"
+ " ldrb r0, [r0]\n"
+ " neg r0, r0\n"
+ " strh r0, [r1, #0x26]\n"
+ " mov r0, #0xa\n"
+ " ldsh r1, [r2, r0]\n"
+ " lsl r0, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r4\n"
+ " mov r1, #0x0\n"
+ " bl StartSpriteAnim\n"
+ " add sp, sp, #0x8\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._883:\n"
+ " .align 2, 0\n"
+ "._882:\n"
+ " .word gCurrentMove\n"
+ " .word gMonFrontPicTable\n"
+ " .word gMonFrontPicCoords\n"
+ " .word gUnknown_081FAF4C\n"
+ " .word gMonPaletteTable\n"
+ " .word gSprites\n"
+ " .word gTasks\n"
+ " .word gUnknown_02023A14+0x13e\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8012AC0()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r6, r1, #0x18\n"
+ " ldr r3, ._885\n"
+ " ldr r4, ._885 + 4\n"
+ " b ._884\n"
+ "._886:\n"
+ " .align 2, 0\n"
+ "._885:\n"
+ " .word gCurrentMove\n"
+ " .word gBaseStats\n"
+ "._890:\n"
+ " ldrb r0, [r1, #0x7]\n"
+ " cmp r0, #0x2\n"
+ " beq ._887 @cond_branch\n"
+ "._884:\n"
+ " add r2, r3, #0\n"
+ " lsl r0, r5, #0x18\n"
+ " asr r0, r0, #0x18\n"
+ " ldrh r1, [r2]\n"
+ " add r0, r0, r1\n"
+ " strh r0, [r2]\n"
+ " lsl r0, r0, #0x10\n"
+ " cmp r0, #0\n"
+ " bne ._888 @cond_branch\n"
+ " ldr r1, ._891\n"
+ " add r0, r1, #0\n"
+ " strh r0, [r2]\n"
+ "._888:\n"
+ " ldrh r1, [r2]\n"
+ " ldr r0, ._891\n"
+ " cmp r1, r0\n"
+ " bne ._889 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " strh r0, [r2]\n"
+ "._889:\n"
+ " ldrh r0, [r3]\n"
+ " lsl r1, r0, #0x3\n"
+ " sub r1, r1, r0\n"
+ " lsl r1, r1, #0x2\n"
+ " add r1, r1, r4\n"
+ " ldrb r0, [r1, #0x6]\n"
+ " cmp r0, #0x2\n"
+ " bne ._890 @cond_branch\n"
+ "._887:\n"
+ " bl debug_sub_80128B4\n"
+ " add r0, r6, #0\n"
+ " bl debug_sub_8012938\n"
+ " add r0, r6, #0\n"
+ " bl debug_sub_80129F8\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._892:\n"
+ " .align 2, 0\n"
+ "._891:\n"
+ " .word 0x19b\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8012B2C()
+{
+ asm(
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x11\n"
+ " ldr r1, ._893\n"
+ " add r2, r0, r1\n"
+ " mov r1, #0x1\n"
+ " strh r1, [r2]\n"
+ " ldr r1, ._893 + 4\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x2\n"
+ " strh r1, [r0]\n"
+ " bx lr\n"
+ "._894:\n"
+ " .align 2, 0\n"
+ "._893:\n"
+ " .word 0x600c772\n"
+ " .word 0x600c7b2\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8012B4C()
+{
+ asm(
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x11\n"
+ " ldr r2, ._895\n"
+ " add r1, r0, r2\n"
+ " ldr r3, ._895 + 4\n"
+ " add r2, r3, #0\n"
+ " strh r2, [r1]\n"
+ " ldr r1, ._895 + 8\n"
+ " add r0, r0, r1\n"
+ " strh r2, [r0]\n"
+ " bx lr\n"
+ "._896:\n"
+ " .align 2, 0\n"
+ "._895:\n"
+ " .word 0x600c772\n"
+ " .word 0x1016\n"
+ " .word 0x600c7b2\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8012B70()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r6, r1, #0x18\n"
+ " cmp r6, #0\n"
+ " beq ._897 @cond_branch\n"
+ " mov r4, #0x1\n"
+ " str r4, [sp]\n"
+ " mov r0, #0x18\n"
+ " mov r1, #0x1c\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x21\n"
+ " bl sub_802BBD4\n"
+ " bl debug_sub_80128B4\n"
+ " add r0, r5, #0\n"
+ " bl debug_sub_8012938\n"
+ " add r0, r5, #0\n"
+ " bl debug_sub_80129F8\n"
+ " ldr r1, ._899\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " strh r4, [r0, #0x8]\n"
+ " b ._898\n"
+ "._900:\n"
+ " .align 2, 0\n"
+ "._899:\n"
+ " .word gTasks\n"
+ "._897:\n"
+ " str r6, [sp]\n"
+ " mov r0, #0x18\n"
+ " mov r1, #0x1c\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x21\n"
+ " bl sub_802BBD4\n"
+ " ldr r0, ._901\n"
+ " lsl r4, r5, #0x2\n"
+ " add r4, r4, r5\n"
+ " lsl r4, r4, #0x3\n"
+ " add r4, r4, r0\n"
+ " mov r0, #0x2\n"
+ " strh r0, [r4, #0x8]\n"
+ " ldr r5, ._901 + 4\n"
+ " ldr r1, ._901 + 8\n"
+ " mov r2, #0xa4\n"
+ " lsl r2, r2, #0x2\n"
+ " mov r0, #0x1d\n"
+ " str r0, [sp]\n"
+ " add r0, r5, #0\n"
+ " mov r3, #0x1a\n"
+ " bl InitWindow\n"
+ " add r0, r5, #0\n"
+ " bl sub_8002F44\n"
+ " strh r6, [r4, #0xe]\n"
+ " mov r0, #0x0\n"
+ " bl debug_sub_8012B2C\n"
+ "._898:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._902:\n"
+ " .align 2, 0\n"
+ "._901:\n"
+ " .word gTasks\n"
+ " .word gUnknown_03004210\n"
+ " .word UnkDebug0+0x422\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8012C08()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " add r4, r1, #0\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x9\n"
+ " bl debug_sub_8010A7C\n"
+ " ldr r7, ._905\n"
+ " ldr r5, ._905 + 4\n"
+ " mov r0, #0x23\n"
+ " mov r8, r0\n"
+ " str r0, [sp]\n"
+ " add r0, r7, #0\n"
+ " add r1, r5, #0\n"
+ " mov r2, #0x90\n"
+ " mov r3, #0x2\n"
+ " bl InitWindow\n"
+ " add r0, r7, #0\n"
+ " bl sub_8002F44\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x7\n"
+ " bl debug_sub_8010A7C\n"
+ " mov r0, #0x25\n"
+ " str r0, [sp]\n"
+ " add r0, r7, #0\n"
+ " add r1, r5, #0\n"
+ " mov r2, #0xa2\n"
+ " mov r3, #0x2\n"
+ " bl InitWindow\n"
+ " add r0, r7, #0\n"
+ " bl sub_8002F44\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " mov r0, #0x18\n"
+ " mov r1, #0x1c\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x21\n"
+ " bl sub_802BBD4\n"
+ " cmp r4, #0\n"
+ " beq ._903 @cond_branch\n"
+ " ldr r1, ._905 + 8\n"
+ " lsl r4, r6, #0x2\n"
+ " add r0, r4, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x4\n"
+ " strh r1, [r0, #0x8]\n"
+ " ldr r1, ._905 + 12\n"
+ " mov r0, r8\n"
+ " str r0, [sp]\n"
+ " add r0, r7, #0\n"
+ " mov r2, #0x90\n"
+ " mov r3, #0x2\n"
+ " bl InitWindow\n"
+ " b ._904\n"
+ "._906:\n"
+ " .align 2, 0\n"
+ "._905:\n"
+ " .word gUnknown_03004210\n"
+ " .word gBattleTextBuff1\n"
+ " .word gTasks\n"
+ " .word gUnknown_Debug_821F7F3\n"
+ "._903:\n"
+ " ldr r1, ._907\n"
+ " lsl r4, r6, #0x2\n"
+ " add r0, r4, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x3\n"
+ " strh r1, [r0, #0x8]\n"
+ " ldr r1, ._907 + 4\n"
+ " mov r0, r8\n"
+ " str r0, [sp]\n"
+ " add r0, r7, #0\n"
+ " mov r2, #0x90\n"
+ " mov r3, #0x2\n"
+ " bl InitWindow\n"
+ "._904:\n"
+ " add r5, r4, #0\n"
+ " ldr r4, ._907 + 8\n"
+ " add r0, r4, #0\n"
+ " bl sub_8002F44\n"
+ " ldr r1, ._907 + 12\n"
+ " mov r2, #0xa4\n"
+ " lsl r2, r2, #0x2\n"
+ " mov r0, #0x1d\n"
+ " str r0, [sp]\n"
+ " add r0, r4, #0\n"
+ " mov r3, #0x1a\n"
+ " bl InitWindow\n"
+ " add r0, r4, #0\n"
+ " bl sub_8002F44\n"
+ " ldr r1, ._907\n"
+ " add r0, r5, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x1\n"
+ " strh r1, [r0, #0xe]\n"
+ " mov r0, #0x1\n"
+ " bl debug_sub_8012B2C\n"
+ " add sp, sp, #0x4\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._908:\n"
+ " .align 2, 0\n"
+ "._907:\n"
+ " .word gTasks\n"
+ " .word UnkDebug0+0x432\n"
+ " .word gUnknown_03004210\n"
+ " .word gUnknown_08400D7A\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8012D10()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " ldr r1, ._911\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x8\n"
+ " ldsh r0, [r0, r1]\n"
+ " cmp r0, #0x4\n"
+ " bls ._909 @cond_branch\n"
+ " b ._1067\n"
+ "._909:\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._911 + 4\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov pc, r0\n"
+ "._912:\n"
+ " .align 2, 0\n"
+ "._911:\n"
+ " .word gTasks\n"
+ " .word ._913\n"
+ "._913:\n"
+ " .word ._914\n"
+ " .word ._915\n"
+ " .word ._916\n"
+ " .word ._917\n"
+ " .word ._918\n"
+ "._914:\n"
+ " bl debug_sub_80128B4\n"
+ " add r0, r5, #0\n"
+ " bl debug_sub_8012938\n"
+ " ldr r4, ._920\n"
+ " ldr r1, ._920 + 4\n"
+ " mov r2, #0xc8\n"
+ " lsl r2, r2, #0x1\n"
+ " mov r0, #0x23\n"
+ " str r0, [sp]\n"
+ " add r0, r4, #0\n"
+ " mov r3, #0x13\n"
+ " bl InitWindow\n"
+ " add r0, r4, #0\n"
+ " bl sub_8002F44\n"
+ " ldr r1, ._920 + 8\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldrh r1, [r0, #0x8]\n"
+ " add r1, r1, #0x1\n"
+ " strh r1, [r0, #0x8]\n"
+ " ldrb r0, [r0, #0xc]\n"
+ " b ._919\n"
+ "._921:\n"
+ " .align 2, 0\n"
+ "._920:\n"
+ " .word gUnknown_03004210\n"
+ " .word UnkDebug0+0x405\n"
+ " .word gTasks\n"
+ "._915:\n"
+ " ldr r2, ._924\n"
+ " ldrh r1, [r2, #0x2e]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._922 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r0, ._924 + 4\n"
+ " lsl r4, r5, #0x2\n"
+ " add r4, r4, r5\n"
+ " lsl r4, r4, #0x3\n"
+ " add r4, r4, r0\n"
+ " ldrb r0, [r4, #0xc]\n"
+ " bl nullsub_8\n"
+ " ldrh r1, [r4, #0xc]\n"
+ " mov r0, #0x3\n"
+ " neg r0, r0\n"
+ " and r0, r0, r1\n"
+ " b ._931\n"
+ "._925:\n"
+ " .align 2, 0\n"
+ "._924:\n"
+ " .word gMain\n"
+ " .word gTasks\n"
+ "._922:\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._926 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r0, ._928\n"
+ " lsl r4, r5, #0x2\n"
+ " add r4, r4, r5\n"
+ " lsl r4, r4, #0x3\n"
+ " add r4, r4, r0\n"
+ " ldrb r0, [r4, #0xc]\n"
+ " bl nullsub_8\n"
+ " ldrh r1, [r4, #0xc]\n"
+ " mov r0, #0x2\n"
+ " b ._927\n"
+ "._929:\n"
+ " .align 2, 0\n"
+ "._928:\n"
+ " .word gTasks\n"
+ "._926:\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._930 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r0, ._932\n"
+ " lsl r4, r5, #0x2\n"
+ " add r4, r4, r5\n"
+ " lsl r4, r4, #0x3\n"
+ " add r4, r4, r0\n"
+ " ldrb r0, [r4, #0xc]\n"
+ " bl nullsub_8\n"
+ " ldrh r1, [r4, #0xc]\n"
+ " mov r0, #0x2\n"
+ " neg r0, r0\n"
+ " and r0, r0, r1\n"
+ " b ._931\n"
+ "._933:\n"
+ " .align 2, 0\n"
+ "._932:\n"
+ " .word gTasks\n"
+ "._930:\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._934 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r0, ._936\n"
+ " lsl r4, r5, #0x2\n"
+ " add r4, r4, r5\n"
+ " lsl r4, r4, #0x3\n"
+ " add r4, r4, r0\n"
+ " ldrb r0, [r4, #0xc]\n"
+ " bl nullsub_8\n"
+ " ldrh r1, [r4, #0xc]\n"
+ " mov r0, #0x1\n"
+ "._927:\n"
+ " orr r0, r0, r1\n"
+ "._931:\n"
+ " strh r0, [r4, #0xc]\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ "._919:\n"
+ " mov r1, #0x0\n"
+ " bl sub_802E3E4\n"
+ " b ._1067\n"
+ "._937:\n"
+ " .align 2, 0\n"
+ "._936:\n"
+ " .word gTasks\n"
+ "._934:\n"
+ " ldrh r1, [r2, #0x30]\n"
+ " mov r4, #0x1\n"
+ " add r0, r4, #0\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._938 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r1, ._943\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " mov r2, #0xc\n"
+ " ldsh r0, [r0, r2]\n"
+ " cmp r0, #0x1\n"
+ " beq ._939 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bgt ._940 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._941 @cond_branch\n"
+ " b ._1067\n"
+ "._944:\n"
+ " .align 2, 0\n"
+ "._943:\n"
+ " .word gTasks\n"
+ "._940:\n"
+ " cmp r0, #0x2\n"
+ " beq ._945 @cond_branch\n"
+ "._990:\n"
+ " cmp r0, #0x3\n"
+ " bne ._946 @cond_branch\n"
+ " b ._1014\n"
+ "._946:\n"
+ " b ._1067\n"
+ "._941:\n"
+ " ldr r1, ._952\n"
+ " ldr r0, ._952 + 4\n"
+ " ldrh r0, [r0]\n"
+ " sub r0, r0, #0x1\n"
+ " add r1, r0, r1\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0x3f\n"
+ " bls ._949 @cond_branch\n"
+ " b ._1067\n"
+ "._949:\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " b ._1019\n"
+ "._953:\n"
+ " .align 2, 0\n"
+ "._952:\n"
+ " .word gUnknown_02023A14+0x13e\n"
+ " .word gCurrentMove\n"
+ "._939:\n"
+ " mov r0, #0x1\n"
+ " b ._997\n"
+ "._945:\n"
+ " ldr r1, ._957\n"
+ " ldrh r2, [r1]\n"
+ " mov r0, #0xcd\n"
+ " lsl r0, r0, #0x1\n"
+ " cmp r2, r0\n"
+ " bhi ._955 @cond_branch\n"
+ " add r0, r2, #1\n"
+ "._979:\n"
+ " strh r0, [r1]\n"
+ " b ._1025\n"
+ "._958:\n"
+ " .align 2, 0\n"
+ "._957:\n"
+ " .word gCurrentMove\n"
+ "._955:\n"
+ " strh r4, [r1]\n"
+ " b ._1025\n"
+ "._938:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._960 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r1, ._966\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0xc\n"
+ " ldsh r0, [r0, r1]\n"
+ " cmp r0, #0x1\n"
+ " bne ._961 @cond_branch\n"
+ " b ._1007\n"
+ "._961:\n"
+ " cmp r0, #0x1\n"
+ " bgt ._963 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._964 @cond_branch\n"
+ " b ._1067\n"
+ "._967:\n"
+ " .align 2, 0\n"
+ "._966:\n"
+ " .word gTasks\n"
+ "._963:\n"
+ " cmp r0, #0x2\n"
+ " beq ._968 @cond_branch\n"
+ " b ._990\n"
+ "._964:\n"
+ " ldr r1, ._973\n"
+ " ldr r0, ._973 + 4\n"
+ " ldrh r0, [r0]\n"
+ " sub r0, r0, #0x1\n"
+ " add r1, r0, r1\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " bne ._970 @cond_branch\n"
+ " b ._1067\n"
+ "._970:\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " b ._1019\n"
+ "._974:\n"
+ " .align 2, 0\n"
+ "._973:\n"
+ " .word gUnknown_02023A14+0x13e\n"
+ " .word gCurrentMove\n"
+ "._968:\n"
+ " ldr r1, ._977\n"
+ " ldrh r0, [r1]\n"
+ " cmp r0, #0x1\n"
+ " bls ._975 @cond_branch\n"
+ " sub r0, r0, #0x1\n"
+ " b ._979\n"
+ "._978:\n"
+ " .align 2, 0\n"
+ "._977:\n"
+ " .word gCurrentMove\n"
+ "._975:\n"
+ " ldr r2, ._980\n"
+ " add r0, r2, #0\n"
+ " b ._979\n"
+ "._981:\n"
+ " .align 2, 0\n"
+ "._980:\n"
+ " .word 0x19b\n"
+ "._960:\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._982 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r1, ._987\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0xc\n"
+ " ldsh r0, [r0, r1]\n"
+ " cmp r0, #0x1\n"
+ " beq ._983 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bgt ._984 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._985 @cond_branch\n"
+ " b ._1067\n"
+ "._988:\n"
+ " .align 2, 0\n"
+ "._987:\n"
+ " .word gTasks\n"
+ "._984:\n"
+ " cmp r0, #0x2\n"
+ " beq ._989 @cond_branch\n"
+ " b ._990\n"
+ "._985:\n"
+ " ldr r3, ._995\n"
+ " ldr r2, ._995 + 4\n"
+ " ldrh r0, [r2]\n"
+ " sub r0, r0, #0x1\n"
+ " add r1, r0, r3\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0x3f\n"
+ " bls ._991 @cond_branch\n"
+ " b ._1067\n"
+ "._991:\n"
+ " add r0, r0, #0x8\n"
+ " strb r0, [r1]\n"
+ " ldrh r0, [r2]\n"
+ " sub r0, r0, #0x1\n"
+ " add r1, r0, r3\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0x40\n"
+ " bls ._1019 @cond_branch\n"
+ " mov r0, #0x40\n"
+ " strb r0, [r1]\n"
+ " b ._1019\n"
+ "._996:\n"
+ " .align 2, 0\n"
+ "._995:\n"
+ " .word gUnknown_02023A14+0x13e\n"
+ " .word gCurrentMove\n"
+ "._983:\n"
+ " mov r0, #0x1\n"
+ " b ._997\n"
+ "._989:\n"
+ " ldr r3, ._1000\n"
+ " ldrh r2, [r3]\n"
+ " add r1, r2, #0\n"
+ " add r1, r1, #0xa\n"
+ " ldr r0, ._1000 + 4\n"
+ " cmp r1, r0\n"
+ " bgt ._998 @cond_branch\n"
+ " strh r1, [r3]\n"
+ " b ._1025\n"
+ "._1001:\n"
+ " .align 2, 0\n"
+ "._1000:\n"
+ " .word gCurrentMove\n"
+ " .word 0x19b\n"
+ "._998:\n"
+ " ldr r1, ._1003\n"
+ " add r0, r2, r1\n"
+ " strh r0, [r3]\n"
+ " b ._1025\n"
+ "._1004:\n"
+ " .align 2, 0\n"
+ "._1003:\n"
+ " .word 0xfffffe70\n"
+ "._982:\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._1005 @cond_branch\n"
+ " b ._1067\n"
+ "._1005:\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r1, ._1011\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " mov r2, #0xc\n"
+ " ldsh r3, [r0, r2]\n"
+ " cmp r3, #0x1\n"
+ " beq ._1007 @cond_branch\n"
+ " cmp r3, #0x1\n"
+ " bgt ._1008 @cond_branch\n"
+ " cmp r3, #0\n"
+ " beq ._1009 @cond_branch\n"
+ " b ._1067\n"
+ "._1012:\n"
+ " .align 2, 0\n"
+ "._1011:\n"
+ " .word gTasks\n"
+ "._1008:\n"
+ " cmp r3, #0x2\n"
+ " beq ._1013 @cond_branch\n"
+ " cmp r3, #0x3\n"
+ " beq ._1014 @cond_branch\n"
+ " b ._1067\n"
+ "._1009:\n"
+ " ldr r1, ._1020\n"
+ " ldr r0, ._1020 + 4\n"
+ " ldrh r0, [r0]\n"
+ " sub r0, r0, #0x1\n"
+ " add r2, r0, r1\n"
+ " ldrb r0, [r2]\n"
+ " add r1, r0, #0\n"
+ " cmp r1, #0\n"
+ " bne ._1016 @cond_branch\n"
+ " b ._1067\n"
+ "._1016:\n"
+ " cmp r1, #0x8\n"
+ " bls ._1018 @cond_branch\n"
+ " sub r0, r0, #0x8\n"
+ " strb r0, [r2]\n"
+ " b ._1019\n"
+ "._1021:\n"
+ " .align 2, 0\n"
+ "._1020:\n"
+ " .word gUnknown_02023A14+0x13e\n"
+ " .word gCurrentMove\n"
+ "._1018:\n"
+ " strb r3, [r2]\n"
+ "._1019:\n"
+ " add r0, r5, #0\n"
+ " bl debug_sub_8012938\n"
+ " b ._1067\n"
+ "._1007:\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ "._997:\n"
+ " add r1, r5, #0\n"
+ " bl debug_sub_8012AC0\n"
+ " b ._1067\n"
+ "._1013:\n"
+ " ldr r2, ._1026\n"
+ " ldrh r0, [r2]\n"
+ " add r1, r0, #0\n"
+ " sub r1, r1, #0xa\n"
+ " cmp r1, #0x1\n"
+ " ble ._1024 @cond_branch\n"
+ " strh r1, [r2]\n"
+ " b ._1025\n"
+ "._1027:\n"
+ " .align 2, 0\n"
+ "._1026:\n"
+ " .word gCurrentMove\n"
+ "._1024:\n"
+ " mov r1, #0xc8\n"
+ " lsl r1, r1, #0x1\n"
+ " add r0, r0, r1\n"
+ " strh r0, [r2]\n"
+ "._1025:\n"
+ " bl debug_sub_80128B4\n"
+ " add r0, r5, #0\n"
+ " bl debug_sub_8012938\n"
+ " add r0, r5, #0\n"
+ " bl debug_sub_80129F8\n"
+ " b ._1067\n"
+ "._1014:\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x0\n"
+ " bl debug_sub_8012B70\n"
+ " b ._1067\n"
+ "._916:\n"
+ " ldr r0, ._1032\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._1030 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r0, ._1032 + 4\n"
+ " lsl r4, r5, #0x2\n"
+ " add r4, r4, r5\n"
+ " lsl r4, r4, #0x3\n"
+ " add r4, r4, r0\n"
+ " ldrb r0, [r4, #0xe]\n"
+ " bl debug_sub_8012B4C\n"
+ " mov r0, #0x0\n"
+ " b ._1055\n"
+ "._1033:\n"
+ " .align 2, 0\n"
+ "._1032:\n"
+ " .word gMain\n"
+ " .word gTasks\n"
+ "._1030:\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._1046 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._1035 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r0, ._1037\n"
+ " lsl r1, r5, #0x2\n"
+ " add r1, r1, r5\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " ldrb r1, [r1, #0xe]\n"
+ " add r0, r5, #0\n"
+ " bl debug_sub_8012C08\n"
+ " b ._1067\n"
+ "._1038:\n"
+ " .align 2, 0\n"
+ "._1037:\n"
+ " .word gTasks\n"
+ "._1035:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._1039 @cond_branch\n"
+ " b ._1067\n"
+ "._1039:\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " b ._1063\n"
+ "._917:\n"
+ " ldr r0, ._1044\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._1042 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r0, ._1044 + 4\n"
+ " lsl r4, r5, #0x2\n"
+ " add r4, r4, r5\n"
+ " lsl r4, r4, #0x3\n"
+ " add r4, r4, r0\n"
+ " ldrb r0, [r4, #0xe]\n"
+ " bl debug_sub_8012B4C\n"
+ " mov r0, #0x0\n"
+ " b ._1055\n"
+ "._1045:\n"
+ " .align 2, 0\n"
+ "._1044:\n"
+ " .word gMain\n"
+ " .word gTasks\n"
+ "._1042:\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._1046 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._1047 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r0, ._1050\n"
+ " lsl r1, r5, #0x2\n"
+ " add r1, r1, r5\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " mov r2, #0xe\n"
+ " ldsh r0, [r1, r2]\n"
+ " cmp r0, #0\n"
+ " bne ._1063 @cond_branch\n"
+ " ldr r1, ._1050 + 4\n"
+ " ldr r2, ._1050 + 8\n"
+ " mov r0, #0x1f\n"
+ " bl debug_sub_80132C8\n"
+ " b ._1063\n"
+ "._1051:\n"
+ " .align 2, 0\n"
+ "._1050:\n"
+ " .word gTasks\n"
+ " .word gUnknown_02023A14+0x13e\n"
+ " .word 0x19b\n"
+ "._1047:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._1067 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " b ._1063\n"
+ "._918:\n"
+ " ldr r0, ._1056\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._1054 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r0, ._1056 + 4\n"
+ " lsl r4, r5, #0x2\n"
+ " add r4, r4, r5\n"
+ " lsl r4, r4, #0x3\n"
+ " add r4, r4, r0\n"
+ " ldrb r0, [r4, #0xe]\n"
+ " bl debug_sub_8012B4C\n"
+ " mov r0, #0x0\n"
+ " b ._1055\n"
+ "._1057:\n"
+ " .align 2, 0\n"
+ "._1056:\n"
+ " .word gMain\n"
+ " .word gTasks\n"
+ "._1054:\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._1058 @cond_branch\n"
+ "._1046:\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r0, ._1060\n"
+ " lsl r4, r5, #0x2\n"
+ " add r4, r4, r5\n"
+ " lsl r4, r4, #0x3\n"
+ " add r4, r4, r0\n"
+ " ldrb r0, [r4, #0xe]\n"
+ " bl debug_sub_8012B4C\n"
+ " mov r0, #0x1\n"
+ "._1055:\n"
+ " strh r0, [r4, #0xe]\n"
+ " bl debug_sub_8012B2C\n"
+ " b ._1067\n"
+ "._1061:\n"
+ " .align 2, 0\n"
+ "._1060:\n"
+ " .word gTasks\n"
+ "._1058:\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._1062 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r0, ._1065\n"
+ " lsl r1, r5, #0x2\n"
+ " add r1, r1, r5\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " mov r2, #0xe\n"
+ " ldsh r0, [r1, r2]\n"
+ " cmp r0, #0\n"
+ " bne ._1063 @cond_branch\n"
+ " ldr r1, ._1065 + 4\n"
+ " ldr r2, ._1065 + 8\n"
+ " mov r0, #0x1f\n"
+ " bl debug_sub_8013294\n"
+ "._1063:\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x1\n"
+ " bl debug_sub_8012B70\n"
+ " b ._1067\n"
+ "._1066:\n"
+ " .align 2, 0\n"
+ "._1065:\n"
+ " .word gTasks\n"
+ " .word gUnknown_02023A14+0x13e\n"
+ " .word 0x19b\n"
+ "._1062:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._1067 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x1\n"
+ " bl debug_sub_8012B70\n"
+ "._1067:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8013240()
+{
+ asm(
+ " push {lr}\n"
+ " bl gScriptFuncs_End+0x2fec\n"
+ " lsl r0, r0, #0x10\n"
+ " cmp r0, #0\n"
+ " beq ._1068 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " b ._1069\n"
+ "._1068:\n"
+ " mov r0, #0x0\n"
+ "._1069:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8013258()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add r6, r1, #0\n"
+ " add r5, r2, #0\n"
+ " b ._1070\n"
+ "._1072:\n"
+ " ldr r0, ._1074\n"
+ " add r5, r5, r0\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x5\n"
+ " add r6, r6, r0\n"
+ " add r0, r4, #1\n"
+ "._1070:\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r4, r0, #0x10\n"
+ " add r0, r4, #0\n"
+ " add r1, r6, #0\n"
+ " bl gScriptFuncs_End+0x2f60\n"
+ " cmp r0, #0\n"
+ " bne ._1071 @cond_branch\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x5\n"
+ " cmp r5, r0\n"
+ " bhi ._1072 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " b ._1073\n"
+ "._1075:\n"
+ " .align 2, 0\n"
+ "._1074:\n"
+ " .word 0xfffff000\n"
+ "._1071:\n"
+ " mov r0, #0x0\n"
+ "._1073:\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8013294()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add r5, r1, #0\n"
+ " add r6, r2, #0\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " bl debug_sub_8013240\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._1076 @cond_branch\n"
+ " bl gScriptFuncs_End+0x19f4\n"
+ " add r0, r4, #0\n"
+ " add r1, r5, #0\n"
+ " add r2, r6, #0\n"
+ " bl debug_sub_8013258\n"
+ " add r4, r0, #0\n"
+ " bl gScriptFuncs_End+0x1a70\n"
+ " add r0, r4, #0\n"
+ " b ._1077\n"
+ "._1076:\n"
+ " mov r0, #0x0\n"
+ "._1077:\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_80132C8()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add r5, r1, #0\n"
+ " add r6, r2, #0\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " bl debug_sub_8013240\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._1078 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x0\n"
+ " add r2, r5, #0\n"
+ " add r3, r6, #0\n"
+ " bl gScriptFuncs_End+0x2d64\n"
+ "._1078:\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+#endif
+
void oac_poke_opponent(struct Sprite *sprite)
{
sprite->callback = sub_8010278;
@@ -1554,6 +8880,269 @@ void sub_8010800(void)
gBattleMainFunc = bc_8012FAC;
}
+#if DEBUG
+__attribute__((naked))
+void debug_sub_80138CC()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._1167\n"
+ " ldrb r0, [r0]\n"
+ " bl GetBankSide\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._1163 @cond_branch\n"
+ " b ._1186\n"
+ "._1163:\n"
+ " ldr r1, ._1167 + 4\n"
+ " ldr r2, ._1167 + 8\n"
+ " add r0, r1, r2\n"
+ " ldrb r0, [r0]\n"
+ " add r2, r1, #0\n"
+ " cmp r0, #0x4\n"
+ " bls ._1165 @cond_branch\n"
+ " b ._1186\n"
+ "._1165:\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._1167 + 12\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov pc, r0\n"
+ "._1168:\n"
+ " .align 2, 0\n"
+ "._1167:\n"
+ " .word gActiveBank\n"
+ " .word +0x2000000\n"
+ " .word 0x160fd\n"
+ " .word ._1169\n"
+ "._1169:\n"
+ " .word ._1170\n"
+ " .word ._1171\n"
+ " .word ._1172\n"
+ " .word ._1173\n"
+ " .word ._1174\n"
+ "._1170:\n"
+ " ldr r1, ._1177\n"
+ " ldr r0, ._1177 + 4\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldr r1, [r0]\n"
+ " ldr r0, ._1177 + 8\n"
+ " cmp r1, r0\n"
+ " bne ._1186 @cond_branch\n"
+ " ldr r0, ._1177 + 12\n"
+ " add r1, r2, r0\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " b ._1187\n"
+ "._1178:\n"
+ " .align 2, 0\n"
+ "._1177:\n"
+ " .word gBattleBankFunc\n"
+ " .word gActiveBank\n"
+ " .word sub_802C098+1\n"
+ " .word 0x160fd\n"
+ "._1171:\n"
+ " ldr r1, ._1180\n"
+ " mov r0, #0x1\n"
+ " strh r0, [r1, #0x2c]\n"
+ " strh r0, [r1, #0x2e]\n"
+ " ldr r0, ._1180 + 4\n"
+ " add r1, r2, r0\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " ldr r0, ._1180 + 8\n"
+ " add r1, r2, r0\n"
+ " mov r0, #0x80\n"
+ " b ._1187\n"
+ "._1181:\n"
+ " .align 2, 0\n"
+ "._1180:\n"
+ " .word gMain\n"
+ " .word 0x160fd\n"
+ " .word 0x160fe\n"
+ "._1172:\n"
+ " ldr r0, ._1184\n"
+ " add r3, r2, r0\n"
+ " ldrb r0, [r3]\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r3]\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._1186 @cond_branch\n"
+ " ldr r1, ._1184 + 4\n"
+ " mov r0, #0x1\n"
+ " strh r0, [r1, #0x2c]\n"
+ " strh r0, [r1, #0x2e]\n"
+ " ldr r0, ._1184 + 8\n"
+ " add r1, r2, r0\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " mov r0, #0x80\n"
+ " strb r0, [r3]\n"
+ " b ._1186\n"
+ "._1185:\n"
+ " .align 2, 0\n"
+ "._1184:\n"
+ " .word 0x160fe\n"
+ " .word gMain\n"
+ " .word 0x160fd\n"
+ "._1173:\n"
+ " ldr r0, ._1188\n"
+ " add r1, r2, r0\n"
+ " ldrb r0, [r1]\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._1186 @cond_branch\n"
+ " ldr r1, ._1188 + 4\n"
+ " mov r0, #0x1\n"
+ " strh r0, [r1, #0x2c]\n"
+ " strh r0, [r1, #0x2e]\n"
+ " ldr r0, ._1188 + 8\n"
+ " add r1, r2, r0\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " b ._1187\n"
+ "._1189:\n"
+ " .align 2, 0\n"
+ "._1188:\n"
+ " .word 0x160fe\n"
+ " .word gMain\n"
+ " .word 0x160fd\n"
+ "._1174:\n"
+ " ldr r0, ._1190\n"
+ " add r1, r2, r0\n"
+ " mov r0, #0x0\n"
+ "._1187:\n"
+ " strb r0, [r1]\n"
+ "._1186:\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._1191:\n"
+ " .align 2, 0\n"
+ "._1190:\n"
+ " .word 0x160fd\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_80139E4()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " ldr r0, ._1198\n"
+ " ldrb r1, [r0]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " cmp r4, #0\n"
+ " beq ._1192 @cond_branch\n"
+ " ldr r2, ._1198 + 4\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r2]\n"
+ " ldr r1, ._1198 + 8\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " beq ._1193 @cond_branch\n"
+ " add r4, r2, #0\n"
+ " add r5, r1, #0\n"
+ "._1194:\n"
+ " bl debug_sub_80138CC\n"
+ " ldrb r0, [r4]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r4]\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldrb r1, [r5]\n"
+ " cmp r0, r1\n"
+ " bcc ._1194 @cond_branch\n"
+ "._1193:\n"
+ " ldr r0, ._1198 + 12\n"
+ " ldr r0, [r0]\n"
+ " bl gScriptFuncs_End+0x3cf4\n"
+ " ldr r1, ._1198 + 4\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ " ldr r0, ._1198 + 8\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._1200 @cond_branch\n"
+ " ldr r5, ._1198 + 16\n"
+ " add r4, r1, #0\n"
+ "._1196:\n"
+ " ldrb r0, [r4]\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r5\n"
+ " ldr r0, [r0]\n"
+ " bl gScriptFuncs_End+0x3cf4\n"
+ " ldrb r0, [r4]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r4]\n"
+ " ldr r1, ._1198 + 8\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldrb r1, [r1]\n"
+ " cmp r0, r1\n"
+ " bcc ._1196 @cond_branch\n"
+ " b ._1200\n"
+ "._1199:\n"
+ " .align 2, 0\n"
+ "._1198:\n"
+ " .word gUnknown_02023A14+0x50\n"
+ " .word gActiveBank\n"
+ " .word gNoOfAllBanks\n"
+ " .word gBattleMainFunc\n"
+ " .word gBattleBankFunc\n"
+ "._1192:\n"
+ " ldr r0, ._1202\n"
+ " ldr r0, [r0]\n"
+ " bl gScriptFuncs_End+0x3cf4\n"
+ " ldr r1, ._1202 + 4\n"
+ " strb r4, [r1]\n"
+ " ldr r0, ._1202 + 8\n"
+ " ldrb r0, [r0]\n"
+ " cmp r4, r0\n"
+ " bcs ._1200 @cond_branch\n"
+ " ldr r5, ._1202 + 12\n"
+ " add r4, r1, #0\n"
+ "._1201:\n"
+ " ldrb r0, [r4]\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r5\n"
+ " ldr r0, [r0]\n"
+ " bl gScriptFuncs_End+0x3cf4\n"
+ " ldrb r0, [r4]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r4]\n"
+ " ldr r1, ._1202 + 8\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldrb r1, [r1]\n"
+ " cmp r0, r1\n"
+ " bcc ._1201 @cond_branch\n"
+ "._1200:\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._1203:\n"
+ " .align 2, 0\n"
+ "._1202:\n"
+ " .word gBattleMainFunc\n"
+ " .word gActiveBank\n"
+ " .word gNoOfAllBanks\n"
+ " .word gBattleBankFunc\n"
+ "\n"
+ );
+}
+#endif
+
void sub_8010824(void)
{
gBattleMainFunc();
@@ -1562,6 +9151,380 @@ void sub_8010824(void)
gBattleBankFunc[gActiveBank]();
}
+#if DEBUG
+__attribute__((naked))
+void sub_8010874()
+{
+ 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"
+ " mov r0, #0x0\n"
+ " bl TurnValuesCleanUp\n"
+ " bl SpecialStatusesClear\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x0\n"
+ " ldr r0, ._1215\n"
+ " mov sl, r0\n"
+ " ldr r1, ._1215 + 4\n"
+ " mov r9, r1\n"
+ " ldr r4, ._1215 + 8\n"
+ " mov r8, r4\n"
+ " ldr r0, ._1215 + 12\n"
+ " mov ip, r0\n"
+ " ldr r4, ._1215 + 16\n"
+ " mov r5, #0x0\n"
+ " ldr r7, ._1215 + 20\n"
+ " ldr r6, ._1215 + 24\n"
+ "._1205:\n"
+ " ldr r0, ._1215 + 28\n"
+ " add r0, r5, r0\n"
+ " str r3, [r0]\n"
+ " mov r1, #0x0\n"
+ "._1204:\n"
+ " add r0, r4, r1\n"
+ " strb r3, [r0]\n"
+ " add r1, r1, #0x1\n"
+ " cmp r1, #0x1b\n"
+ " bls ._1204 @cond_branch\n"
+ " mov r0, #0x2\n"
+ " strb r0, [r4, #0x16]\n"
+ " ldr r1, ._1215 + 32\n"
+ " add r0, r2, r1\n"
+ " strb r3, [r0]\n"
+ " mov r0, ip\n"
+ " strh r3, [r0]\n"
+ " mov r1, r8\n"
+ " strh r3, [r1]\n"
+ " mov r0, r9\n"
+ " strh r3, [r0]\n"
+ " mov r1, sl\n"
+ " strh r3, [r1]\n"
+ " ldr r0, ._1215 + 36\n"
+ " add r1, r2, r0\n"
+ " mov r0, #0xff\n"
+ " strb r0, [r1]\n"
+ " strh r3, [r6]\n"
+ " strh r3, [r7]\n"
+ " ldr r1, ._1215 + 40\n"
+ " add r0, r5, r1\n"
+ " str r3, [r0]\n"
+ " mov r0, #0x2\n"
+ " add sl, sl, r0\n"
+ " add r9, r9, r0\n"
+ " add r8, r8, r0\n"
+ " add ip, ip, r0\n"
+ " add r4, r4, #0x1c\n"
+ " add r5, r5, #0x4\n"
+ " add r7, r7, #0x2\n"
+ " add r6, r6, #0x2\n"
+ " add r2, r2, #0x1\n"
+ " cmp r2, #0x3\n"
+ " ble ._1205 @cond_branch\n"
+ " mov r5, #0x0\n"
+ " ldr r3, ._1215 + 44\n"
+ " ldr r4, ._1215 + 48\n"
+ " mov r2, #0x1\n"
+ "._1207:\n"
+ " strh r5, [r4]\n"
+ " mov r1, #0x0\n"
+ "._1206:\n"
+ " add r0, r3, r1\n"
+ " strb r5, [r0]\n"
+ " add r1, r1, #0x1\n"
+ " cmp r1, #0xb\n"
+ " bls ._1206 @cond_branch\n"
+ " add r3, r3, #0xc\n"
+ " add r4, r4, #0x2\n"
+ " sub r2, r2, #0x1\n"
+ " cmp r2, #0\n"
+ " bge ._1207 @cond_branch\n"
+ " mov r1, #0x0\n"
+ " ldr r2, ._1215 + 52\n"
+ " strb r1, [r2]\n"
+ " ldr r3, ._1215 + 56\n"
+ " strb r1, [r3]\n"
+ " ldr r4, ._1215 + 60\n"
+ " strh r1, [r4]\n"
+ " ldr r1, ._1215 + 64\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x0\n"
+ "._1208:\n"
+ " add r0, r1, r2\n"
+ " strb r3, [r0]\n"
+ " add r2, r2, #0x1\n"
+ " cmp r2, #0x2b\n"
+ " bls ._1208 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " ldr r1, ._1215 + 68\n"
+ " str r0, [r1]\n"
+ " ldr r2, ._1215 + 72\n"
+ " ldrh r1, [r2]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._1210 @cond_branch\n"
+ " ldr r3, ._1215 + 76\n"
+ " ldrb r1, [r3, #0x15]\n"
+ " mov r0, #0x4\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._1210 @cond_branch\n"
+ " mov r0, #0x80\n"
+ " ldr r4, ._1215 + 68\n"
+ " str r0, [r4]\n"
+ "._1210:\n"
+ " ldr r1, ._1215 + 76\n"
+ " ldrb r0, [r1, #0x15]\n"
+ " lsl r0, r0, #0x1e\n"
+ " lsr r0, r0, #0x1f\n"
+ " ldr r3, ._1215 + 80\n"
+ " ldr r4, ._1215 + 84\n"
+ " add r2, r3, r4\n"
+ " mov r1, #0x0\n"
+ " strb r0, [r2]\n"
+ " ldr r0, ._1215 + 88\n"
+ " strb r1, [r0]\n"
+ " ldr r2, ._1215 + 92\n"
+ " strb r1, [r2]\n"
+ " ldr r3, ._1215 + 96\n"
+ " str r1, [r3]\n"
+ " mov r2, #0x0\n"
+ " ldr r4, ._1215 + 100\n"
+ " strh r1, [r4]\n"
+ " ldr r1, ._1215 + 80\n"
+ " ldr r3, ._1215 + 104\n"
+ " add r0, r1, r3\n"
+ " strb r2, [r0]\n"
+ " ldr r4, ._1215 + 108\n"
+ " add r0, r1, r4\n"
+ " strb r2, [r0]\n"
+ " ldr r1, ._1215 + 112\n"
+ " mov r2, #0x0\n"
+ " add r0, r1, #7\n"
+ "._1211:\n"
+ " strb r2, [r0]\n"
+ " sub r0, r0, #0x1\n"
+ " cmp r0, r1\n"
+ " bge ._1211 @cond_branch\n"
+ " mov r5, #0x0\n"
+ " ldr r0, ._1215 + 116\n"
+ " strh r5, [r0]\n"
+ " mov r0, #0x0\n"
+ " ldr r1, ._1215 + 120\n"
+ " str r0, [r1]\n"
+ " ldr r2, ._1215 + 124\n"
+ " strh r0, [r2]\n"
+ " ldr r4, ._1215 + 80\n"
+ " ldr r3, ._1215 + 128\n"
+ " add r0, r4, r3\n"
+ " strb r5, [r0]\n"
+ " ldr r1, ._1215 + 132\n"
+ " add r0, r4, r1\n"
+ " strb r5, [r0]\n"
+ " ldr r2, ._1215 + 136\n"
+ " strb r5, [r2]\n"
+ " ldr r3, ._1215 + 140\n"
+ " strb r5, [r3]\n"
+ " sub r1, r1, #0x29\n"
+ " add r0, r4, r1\n"
+ " strb r5, [r0]\n"
+ " ldr r2, ._1215 + 144\n"
+ " add r0, r4, r2\n"
+ " strb r5, [r0]\n"
+ " ldr r3, ._1215 + 148\n"
+ " add r0, r4, r3\n"
+ " strb r5, [r0]\n"
+ " ldr r0, ._1215 + 152\n"
+ " mov r1, #0xb\n"
+ " bl GetMonData\n"
+ " ldr r2, ._1215 + 156\n"
+ " lsl r1, r0, #0x3\n"
+ " sub r1, r1, r0\n"
+ " lsl r1, r1, #0x2\n"
+ " add r1, r1, r2\n"
+ " ldrb r1, [r1, #0x8]\n"
+ " mov r0, #0x64\n"
+ " mul r0, r0, r1\n"
+ " ldr r1, ._1215 + 160\n"
+ " bl gScriptFuncs_End+0x3d30\n"
+ " ldr r2, ._1215 + 164\n"
+ " add r1, r4, r2\n"
+ " strb r0, [r1]\n"
+ " ldr r3, ._1215 + 168\n"
+ " add r1, r4, r3\n"
+ " mov r0, #0x3\n"
+ " strb r0, [r1]\n"
+ " ldr r1, ._1215 + 172\n"
+ " add r0, r4, r1\n"
+ " strb r5, [r0]\n"
+ " sub r2, r2, #0x33\n"
+ " add r1, r4, r2\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " mov r2, #0x0\n"
+ " mov r1, #0x0\n"
+ "._1212:\n"
+ " ldr r3, ._1215 + 176\n"
+ " add r0, r2, r3\n"
+ " add r0, r0, r4\n"
+ " strb r1, [r0]\n"
+ " add r3, r3, #0x20\n"
+ " add r0, r2, r3\n"
+ " add r0, r0, r4\n"
+ " strb r1, [r0]\n"
+ " add r3, r3, #0x1c\n"
+ " add r0, r2, r3\n"
+ " add r0, r0, r4\n"
+ " strb r1, [r0]\n"
+ " add r3, r3, #0x8\n"
+ " add r0, r2, r3\n"
+ " add r0, r0, r4\n"
+ " strb r1, [r0]\n"
+ " add r3, r3, #0x10\n"
+ " add r0, r2, r3\n"
+ " add r0, r0, r4\n"
+ " strb r1, [r0]\n"
+ " add r3, r3, #0x8\n"
+ " add r0, r2, r3\n"
+ " add r0, r0, r4\n"
+ " strb r1, [r0]\n"
+ " add r2, r2, #0x1\n"
+ " cmp r2, #0x7\n"
+ " ble ._1212 @cond_branch\n"
+ " ldr r4, ._1215 + 80\n"
+ " ldr r1, ._1215 + 180\n"
+ " add r0, r4, r1\n"
+ " mov r2, #0x0\n"
+ " mov r1, #0x6\n"
+ " strb r1, [r0]\n"
+ " sub r3, r3, #0x3f\n"
+ " add r0, r4, r3\n"
+ " strb r1, [r0]\n"
+ " ldr r1, ._1215 + 184\n"
+ " add r0, r4, r1\n"
+ " strb r2, [r0]\n"
+ " ldr r3, ._1215 + 188\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xa\n"
+ " add r0, r3, #0\n"
+ " add r0, r0, #0x40\n"
+ "._1213:\n"
+ " strb r1, [r0]\n"
+ " sub r0, r0, #0x1\n"
+ " sub r2, r2, #0x1\n"
+ " cmp r2, #0\n"
+ " bge ._1213 @cond_branch\n"
+ " mov r1, #0x0\n"
+ " strb r1, [r3, #0x13]\n"
+ " strb r1, [r3]\n"
+ " strb r1, [r3, #0x1]\n"
+ " strb r1, [r3, #0x2]\n"
+ " strb r1, [r3, #0x3]\n"
+ " strb r1, [r3, #0x4]\n"
+ " ldrb r2, [r3, #0x5]\n"
+ " mov r0, #0x2\n"
+ " neg r0, r0\n"
+ " and r0, r0, r2\n"
+ " mov r2, #0x3\n"
+ " neg r2, r2\n"
+ " and r0, r0, r2\n"
+ " strb r0, [r3, #0x5]\n"
+ " strh r1, [r3, #0x20]\n"
+ " strh r1, [r3, #0x22]\n"
+ " strh r1, [r3, #0x24]\n"
+ " strh r1, [r3, #0x6]\n"
+ " strh r1, [r3, #0x26]\n"
+ " strh r1, [r3, #0x28]\n"
+ " mov r2, #0x0\n"
+ " add r5, r3, #0\n"
+ " add r5, r5, #0x8\n"
+ " mov r4, #0x0\n"
+ " add r1, r3, #0\n"
+ " add r1, r1, #0x14\n"
+ "._1214:\n"
+ " add r0, r2, r5\n"
+ " strb r4, [r0]\n"
+ " strb r4, [r1]\n"
+ " strb r4, [r1, #0x16]\n"
+ " add r1, r1, #0x1\n"
+ " add r2, r2, #0x1\n"
+ " cmp r2, #0x9\n"
+ " ble ._1214 @cond_branch\n"
+ " ldr r2, ._1215 + 80\n"
+ " ldr r3, ._1215 + 192\n"
+ " add r0, r2, r3\n"
+ " mov r1, #0x0\n"
+ " strb r1, [r0]\n"
+ " ldr r4, ._1215 + 196\n"
+ " add r0, r2, r4\n"
+ " strb r1, [r0]\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._1216:\n"
+ " .align 2, 0\n"
+ "._1215:\n"
+ " .word gUnknown_02024C4C\n"
+ " .word gUnknown_02024C44\n"
+ " .word gMoveHitWith\n"
+ " .word gLastUsedMove\n"
+ " .word gDisableStructs\n"
+ " .word gUnknown_02024C2C\n"
+ " .word gLockedMove\n"
+ " .word gStatuses3\n"
+ " .word gUnknown_02024C70\n"
+ " .word gUnknown_02024C5C\n"
+ " .word +0x2017100\n"
+ " .word gSideTimer\n"
+ " .word gSideAffecting\n"
+ " .word gBankAttacker\n"
+ " .word gBankTarget\n"
+ " .word gBattleWeather\n"
+ " .word gWishFutureKnock\n"
+ " .word gHitMarker\n"
+ " .word gBattleTypeFlags\n"
+ " .word gSaveBlock2\n"
+ " .word +0x2000000\n"
+ " .word 0x16084\n"
+ " .word gMultiHitCounter\n"
+ " .word gBattleOutcome\n"
+ " .word gBattleExecBuffer\n"
+ " .word gPaydayMoney\n"
+ " .word 0x17130\n"
+ " .word 0x17160\n"
+ " .word gBattleCommunication\n"
+ " .word gPauseCounterBattle\n"
+ " .word gBattleMoveDamage\n"
+ " .word gUnknown_02024DE8\n"
+ " .word 0x16002\n"
+ " .word 0x160a1\n"
+ " .word gLeveledUpInBattle\n"
+ " .word gAbsentBankFlags\n"
+ " .word 0x16086\n"
+ " .word 0x16087\n"
+ " .word gEnemyParty\n"
+ " .word gBaseStats\n"
+ " .word 0x4fb\n"
+ " .word 0x16089\n"
+ " .word 0x16088\n"
+ " .word 0x1601b\n"
+ " .word 0x160ac\n"
+ " .word 0x160c8\n"
+ " .word 0x16113\n"
+ " .word gBattleResults\n"
+ " .word 0x1609e\n"
+ " .word 0x1609f\n"
+ "\n"
+ );
+}
+#else
void sub_8010874(void)
{
s32 i;
@@ -1663,6 +9626,7 @@ void sub_8010874(void)
gBattleResults.caughtNick[i] = 0;
}
}
+#endif
void SwitchInClearStructs(void)
{