diff options
Diffstat (limited to 'src/battle/battle_2.c')
-rw-r--r-- | src/battle/battle_2.c | 7964 |
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) { |