diff options
Diffstat (limited to 'asm')
-rw-r--r-- | asm/battle_1.s | 1 | ||||
-rw-r--r-- | asm/battle_9.s | 171 | ||||
-rw-r--r-- | asm/battle_anim_812C144.s | 76 | ||||
-rw-r--r-- | asm/battle_anim_813F0F4.s | 78 | ||||
-rw-r--r-- | asm/current.s | 14 | ||||
-rw-r--r-- | asm/cute_sketch.s | 1 | ||||
-rw-r--r-- | asm/dark.s | 2013 | ||||
-rw-r--r-- | asm/fight.s | 1749 | ||||
-rw-r--r-- | asm/flying.s | 30 | ||||
-rw-r--r-- | asm/ghost.s | 16 | ||||
-rw-r--r-- | asm/ground.s | 30 | ||||
-rw-r--r-- | asm/ice.s | 48 | ||||
-rw-r--r-- | asm/nakamura_debug_menu.s | 4686 | ||||
-rw-r--r-- | asm/nohara_debug_menu.s | 2198 | ||||
-rw-r--r-- | asm/normal.s | 50 | ||||
-rw-r--r-- | asm/pokemon_storage_system.s | 144 | ||||
-rw-r--r-- | asm/taya_debug_window.s | 2054 | ||||
-rw-r--r-- | asm/unk_debug_menu_3.s | 747 | ||||
-rw-r--r-- | asm/unk_text_8095904.s | 256 | ||||
-rw-r--r-- | asm/watanabe_debug_menu.s | 9578 | ||||
-rw-r--r-- | asm/water.s | 10 |
21 files changed, 19755 insertions, 4195 deletions
diff --git a/asm/battle_1.s b/asm/battle_1.s index 5ef29adee..99e449d8f 100644 --- a/asm/battle_1.s +++ b/asm/battle_1.s @@ -346,4 +346,5 @@ _0800D674: pop {r0} bx r0 thumb_func_end unref_sub_800D42C + .align 2, 0 diff --git a/asm/battle_9.s b/asm/battle_9.s index 9dbb7c619..3f162df12 100644 --- a/asm/battle_9.s +++ b/asm/battle_9.s @@ -1387,6 +1387,176 @@ _08036AFE: bx r1 thumb_func_end AI_ShouldSwitch +.if DEBUG + thumb_func_start sub_8036B0C +sub_8036B0C: +.syntax divided + push {r4, r5, r6, lr} + ldr r5, ._205 @ gBattleTypeFlags + ldrh r1, [r5] + mov r0, #0x8 + and r0, r0, r1 + cmp r0, #0 + bne ._197 @cond_branch + b ._216 +._197: + bl AI_ShouldSwitch + lsl r0, r0, #0x18 + cmp r0, #0 + bne ._199 @cond_branch + b ._200 +._199: + ldr r4, ._205 + 4 @ 0x2000000 + ldr r0, ._205 + 8 @ gActiveBank + ldrb r0, [r0] + bl GetBankIdentity + lsl r0, r0, #0x18 + lsr r0, r0, #0x19 + ldr r1, ._205 + 12 @ 0x160c8 + add r0, r0, r1 + add r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0x6 + bne ._201 @cond_branch + bl sub_8036CD4 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x6 + bne ._211 @cond_branch + ldrh r1, [r5] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + bne ._203 @cond_branch + mov r0, #0x1 + bl GetBankByIdentity + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + add r6, r5, #0 + b ._204 +._206: + .align 2, 0 +._205: + .word gBattleTypeFlags + .word 0x2000000 + .word gActiveBank + .word 0x160c8 +._203: + mov r0, #0x1 + bl GetBankByIdentity + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + mov r0, #0x3 + bl GetBankByIdentity + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 +._204: + mov r4, #0x0 +._212: + mov r0, #0x64 + mul r0, r0, r4 + ldr r1, ._214 @ gEnemyParty + add r0, r0, r1 + mov r1, #0x39 + bl GetMonData + cmp r0, #0 + beq ._210 @cond_branch + ldr r1, ._214 + 4 @ gBattlePartyID + lsl r0, r6, #0x1 + add r0, r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq ._210 @cond_branch + lsl r0, r5, #0x1 + add r0, r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq ._210 @cond_branch + ldr r1, ._214 + 8 @ 0x2000000 + ldr r2, ._214 + 12 @ 0x16068 + add r0, r6, r2 + add r0, r0, r1 + ldrb r0, [r0] + cmp r4, r0 + beq ._210 @cond_branch + add r0, r5, r2 + add r0, r0, r1 + ldrb r0, [r0] + cmp r4, r0 + bne ._211 @cond_branch +._210: + add r4, r4, #0x1 + cmp r4, #0x5 + ble ._212 @cond_branch +._211: + ldr r0, ._214 + 16 @ gActiveBank + ldrb r0, [r0] + bl GetBankIdentity + ldr r1, ._214 + 8 @ 0x2000000 + lsl r0, r0, #0x18 + lsr r0, r0, #0x19 + ldr r3, ._214 + 20 @ 0x160c8 + add r0, r0, r3 + add r0, r0, r1 + strb r4, [r0] +._201: + ldr r4, ._214 + 16 @ gActiveBank + ldrb r0, [r4] + bl GetBankIdentity + ldr r2, ._214 + 8 @ 0x2000000 + ldrb r1, [r4] + ldr r3, ._214 + 12 @ 0x16068 + add r1, r1, r3 + add r1, r1, r2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x19 + add r3, r3, #0x60 + add r0, r0, r3 + add r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1] + b ._217 +._215: + .align 2, 0 +._214: + .word gEnemyParty + .word gBattlePartyID + .word 0x2000000 + .word 0x16068 + .word gActiveBank + .word 0x160c8 +._200: + ldr r0, ._218 @ gUnknown_02023A14 + ldrb r1, [r0] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + bne ._216 @cond_branch + bl AI_ShouldUseItem + lsl r0, r0, #0x18 + cmp r0, #0 + bne ._217 @cond_branch +._216: + ldr r0, ._218 + 4 @ gActiveBank + ldrb r0, [r0] + mov r2, #0x1 + eor r2, r2, r0 + lsl r2, r2, #0x8 + mov r0, #0x1 + mov r1, #0x0 + bl Emitcmd33 +._217: + pop {r4, r5, r6} + pop {r0} + bx r0 +._219: + .align 2, 0 +._218: + .word gUnknown_02023A14+0x50 + .word gActiveBank +.syntax unified + thumb_func_end sub_8036B0C +.else thumb_func_start sub_8036B0C sub_8036B0C: @ 8036B0C push {r4-r6,lr} @@ -1540,6 +1710,7 @@ _08036C40: .align 2, 0 _08036C48: .4byte gActiveBank thumb_func_end sub_8036B0C +.endif thumb_func_start sub_8036C4C sub_8036C4C: @ 8036C4C diff --git a/asm/battle_anim_812C144.s b/asm/battle_anim_812C144.s index 03ffc0eda..d748a78f1 100644 --- a/asm/battle_anim_812C144.s +++ b/asm/battle_anim_812C144.s @@ -128,7 +128,7 @@ sub_812C220: @ 812C220 adds r4, r0, 0 movs r0, 0x5A strh r0, [r4, 0x2E] - ldr r0, _0812C258 @ =sub_80782D8 + ldr r0, _0812C258 @ =WaitAnimForDuration str r0, [r4, 0x1C] movs r0, 0x7 strh r0, [r4, 0x30] @@ -151,7 +151,7 @@ sub_812C220: @ 812C220 pop {r0} bx r0 .align 2, 0 -_0812C258: .4byte sub_80782D8 +_0812C258: .4byte WaitAnimForDuration _0812C25C: .4byte sub_812C268 _0812C260: .4byte REG_BLDCNT _0812C264: .4byte REG_BLDALPHA @@ -234,7 +234,7 @@ sub_812C2BC: @ 812C2BC subs r1, r6 lsls r1, 16 asrs r1, 16 - bl sub_80790F0 + bl ArcTan2Neg lsls r0, 16 movs r1, 0xC0 lsls r1, 23 @@ -262,7 +262,7 @@ _0812C31A: strh r0, [r5, 0x2E] strh r7, [r5, 0x32] strh r6, [r5, 0x36] - ldr r0, _0812C350 @ =sub_8078B34 + ldr r0, _0812C350 @ =StartTranslateAnimSpriteByDeltas str r0, [r5, 0x1C] ldr r1, _0812C354 @ =DestroyAnimSprite adds r0, r5, 0 @@ -274,7 +274,7 @@ _0812C31A: .align 2, 0 _0812C348: .4byte gAnimBankTarget _0812C34C: .4byte gBattleAnimArgs -_0812C350: .4byte sub_8078B34 +_0812C350: .4byte StartTranslateAnimSpriteByDeltas _0812C354: .4byte DestroyAnimSprite thumb_func_end sub_812C2BC @@ -795,7 +795,7 @@ sub_812C720: @ 812C720 sub sp, 0x4 adds r4, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r0, _0812C784 @ =gAnimBankTarget ldrb r0, [r0] mov r5, sp @@ -803,7 +803,7 @@ sub_812C720: @ 812C720 movs r1, 0 mov r2, sp adds r3, r5, 0 - bl sub_807A3FC + bl SetAverageBattlerPositions ldr r0, _0812C788 @ =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide @@ -830,7 +830,7 @@ _0812C754: ldr r0, _0812C790 @ =0x0000ffce strh r0, [r4, 0x38] adds r0, r4, 0 - bl sub_80786EC + bl InitAnimSpriteTranslationOverDuration ldr r0, _0812C794 @ =sub_812C798 str r0, [r4, 0x1C] add sp, 0x4 @@ -849,7 +849,7 @@ _0812C794: .4byte sub_812C798 sub_812C798: @ 812C798 push {r4,lr} adds r4, r0, 0 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _0812C7BA @@ -857,7 +857,7 @@ sub_812C798: @ 812C798 movs r0, 0x1E strh r0, [r4, 0x2E] strh r1, [r4, 0x30] - ldr r0, _0812C7C0 @ =sub_80782D8 + ldr r0, _0812C7C0 @ =WaitAnimForDuration str r0, [r4, 0x1C] ldr r1, _0812C7C4 @ =sub_812C7C8 adds r0, r4, 0 @@ -867,7 +867,7 @@ _0812C7BA: pop {r0} bx r0 .align 2, 0 -_0812C7C0: .4byte sub_80782D8 +_0812C7C0: .4byte WaitAnimForDuration _0812C7C4: .4byte sub_812C7C8 thumb_func_end sub_812C798 @@ -2301,7 +2301,7 @@ sub_812D294: @ 812D294 bne _0812D2A8 adds r0, r5, 0 movs r1, 0 - bl sub_80787B0 + bl InitAnimSpritePos _0812D2A8: ldrh r0, [r5, 0x2E] adds r0, 0x1 @@ -2376,7 +2376,7 @@ _0812D2F0: lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] - ldr r0, _0812D34C @ =sub_8078B34 + ldr r0, _0812D34C @ =StartTranslateAnimSpriteByDeltas str r0, [r5, 0x1C] _0812D33C: pop {r4,r5} @@ -2385,7 +2385,7 @@ _0812D33C: .align 2, 0 _0812D344: .4byte DestroyAnimSprite _0812D348: .4byte gAnimBankTarget -_0812D34C: .4byte sub_8078B34 +_0812D34C: .4byte StartTranslateAnimSpriteByDeltas thumb_func_end sub_812D294 thumb_func_start sub_812D350 @@ -2915,7 +2915,7 @@ sub_812D724: @ 812D724 _0812D736: adds r0, r4, 0 movs r1, 0 - bl sub_80787B0 + bl InitAnimSpritePos movs r0, 0x90 lsls r0, 4 strh r0, [r4, 0x30] @@ -3227,7 +3227,7 @@ _0812D9A2: cmp r0, 0 beq _0812D9F0 ldr r3, _0812D9E4 @ =gSprites - ldr r4, _0812D9E8 @ =gObjectBankIDs + ldr r4, _0812D9E8 @ =gBankSpriteIds ldr r2, _0812D9D4 @ =gAnimBankAttacker ldrb r0, [r2] adds r0, r4 @@ -3248,11 +3248,11 @@ _0812D9D8: .4byte 0x040000d4 _0812D9DC: .4byte 0x84000200 _0812D9E0: .4byte gSharedMem + 0x19348 _0812D9E4: .4byte gSprites -_0812D9E8: .4byte gObjectBankIDs +_0812D9E8: .4byte gBankSpriteIds _0812D9EC: .4byte gSpriteAffineAnimTable_81E7C18 _0812D9F0: ldr r3, _0812DA34 @ =gSprites - ldr r4, _0812DA38 @ =gObjectBankIDs + ldr r4, _0812DA38 @ =gBankSpriteIds ldr r2, _0812DA3C @ =gAnimBankAttacker ldrb r0, [r2] adds r0, r4 @@ -3288,7 +3288,7 @@ _0812DA2A: b _0812DAFA .align 2, 0 _0812DA34: .4byte gSprites -_0812DA38: .4byte gObjectBankIDs +_0812DA38: .4byte gBankSpriteIds _0812DA3C: .4byte gAnimBankAttacker _0812DA40: .4byte gSpriteAffineAnimTable_81E7BEC _0812DA44: .4byte gTasks @@ -3401,7 +3401,7 @@ c3_80DFBE4: @ 812DB18 lsrs r0, 24 ldr r4, _0812DB48 @ =gBattleAnimArgs ldr r3, _0812DB4C @ =gSprites - ldr r2, _0812DB50 @ =gObjectBankIDs + ldr r2, _0812DB50 @ =gBankSpriteIds ldr r1, _0812DB54 @ =gAnimBankAttacker ldrb r1, [r1] adds r1, r2 @@ -3422,7 +3422,7 @@ c3_80DFBE4: @ 812DB18 .align 2, 0 _0812DB48: .4byte gBattleAnimArgs _0812DB4C: .4byte gSprites -_0812DB50: .4byte gObjectBankIDs +_0812DB50: .4byte gBankSpriteIds _0812DB54: .4byte gAnimBankAttacker thumb_func_end c3_80DFBE4 @@ -4626,7 +4626,7 @@ sub_812E4F0: @ 812E4F0 bne _0812E50E adds r0, r4, 0 movs r1, 0 - bl sub_80787B0 + bl InitAnimSpritePos ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] @@ -7672,7 +7672,7 @@ sub_812FC68: @ 812FC68 lsls r0, 3 mov r1, r8 adds r4, r0, r1 - ldr r1, _0812FCCC @ =gObjectBankIDs + ldr r1, _0812FCCC @ =gBankSpriteIds ldr r2, _0812FCD0 @ =gAnimBankAttacker ldrb r0, [r2] adds r0, r1 @@ -7709,7 +7709,7 @@ _0812FCAC: b _0812FD4C .align 2, 0 _0812FCC8: .4byte gTasks -_0812FCCC: .4byte gObjectBankIDs +_0812FCCC: .4byte gBankSpriteIds _0812FCD0: .4byte gAnimBankAttacker _0812FCD4: .4byte gBattleAnimArgs _0812FCD8: .4byte 0xffff8000 @@ -8939,7 +8939,7 @@ _081305C6: adds r0, r1 lsls r0, 2 adds r0, r4 - bl sub_80786EC + bl InitAnimSpriteTranslationOverDuration mov r1, r10 ldrb r0, [r1] bl GetBankSide @@ -9023,7 +9023,7 @@ _081306D6: lsls r0, 2 ldr r1, _08130708 @ =gSprites adds r0, r1 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] @@ -9042,7 +9042,7 @@ _0813070C: lsls r0, 2 ldr r1, _0813072C @ =gSprites adds r0, r1 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _081307AA @@ -10151,7 +10151,7 @@ sub_8130F5C: @ 8130F5C bne _08130F80 adds r0, r4, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r0, _08130F7C @ =gAnimBankAttacker b _08130F82 .align 2, 0 @@ -10356,11 +10356,11 @@ _081310FA: strh r0, [r4, 0x34] strh r1, [r4, 0x36] adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 + bl InitAnimSpriteTranslationDeltas b _081311CA _08131110: adds r0, r4, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas lsls r0, 24 cmp r0, 0 beq _081311DE @@ -10694,7 +10694,7 @@ _08131384: cmp r0, 0 beq _081313C6 ldr r3, _081313F8 @ =gSprites - ldr r2, _081313FC @ =gObjectBankIDs + ldr r2, _081313FC @ =gBankSpriteIds ldrb r0, [r4] adds r0, r2 ldrb r1, [r0] @@ -10744,7 +10744,7 @@ _081313E8: .align 2, 0 _081313F4: .4byte gAnimBankAttacker _081313F8: .4byte gSprites -_081313FC: .4byte gObjectBankIDs +_081313FC: .4byte gBankSpriteIds _08131400: .4byte gSpriteAffineAnimTable_81E7C18 _08131404: .4byte sub_8131408 thumb_func_end sub_81312E4 @@ -12326,7 +12326,7 @@ _08132084: .4byte gAnimBankAttacker _08132088: .4byte gAnimBankTarget _0813208C: .4byte gTasks _08132090: - ldr r1, _081320CC @ =gObjectBankIDs + ldr r1, _081320CC @ =gBankSpriteIds ldr r0, _081320D0 @ =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 @@ -12357,7 +12357,7 @@ _08132090: ldrsh r1, [r2, r3] b _0813215E .align 2, 0 -_081320CC: .4byte gObjectBankIDs +_081320CC: .4byte gBankSpriteIds _081320D0: .4byte gAnimBankAttacker _081320D4: .4byte gSprites _081320D8: @@ -12385,7 +12385,7 @@ _081320EC: strh r1, [r0, 0x26] b _08132188 _08132104: - ldr r1, _08132144 @ =gObjectBankIDs + ldr r1, _08132144 @ =gBankSpriteIds ldr r0, _08132148 @ =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 @@ -12418,7 +12418,7 @@ _08132104: bgt _08132188 b _08132162 .align 2, 0 -_08132144: .4byte gObjectBankIDs +_08132144: .4byte gBankSpriteIds _08132148: .4byte gAnimBankAttacker _0813214C: .4byte gSprites _08132150: @@ -12438,7 +12438,7 @@ _08132162: strh r0, [r2, 0x26] b _08132188 _0813216A: - ldr r1, _08132190 @ =gObjectBankIDs + ldr r1, _08132190 @ =gBankSpriteIds ldr r0, _08132194 @ =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 @@ -12457,7 +12457,7 @@ _08132188: pop {r0} bx r0 .align 2, 0 -_08132190: .4byte gObjectBankIDs +_08132190: .4byte gBankSpriteIds _08132194: .4byte gAnimBankAttacker _08132198: .4byte gSprites thumb_func_end sub_8131FFC diff --git a/asm/battle_anim_813F0F4.s b/asm/battle_anim_813F0F4.s index ccb4854af..a2e942ec9 100644 --- a/asm/battle_anim_813F0F4.s +++ b/asm/battle_anim_813F0F4.s @@ -818,7 +818,7 @@ sub_813F798: @ 813F798 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 - ldr r1, _0813F7C4 @ =gObjectBankIDs + ldr r1, _0813F7C4 @ =gBankSpriteIds ldr r0, _0813F7C8 @ =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 @@ -838,7 +838,7 @@ sub_813F798: @ 813F798 beq _0813F7D6 b _0813F838 .align 2, 0 -_0813F7C4: .4byte gObjectBankIDs +_0813F7C4: .4byte gBankSpriteIds _0813F7C8: .4byte gAnimBankAttacker _0813F7CC: .4byte gTasks _0813F7D0: @@ -909,7 +909,7 @@ sub_813F844: @ 813F844 sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 - ldr r1, _0813F87C @ =gObjectBankIDs + ldr r1, _0813F87C @ =gBankSpriteIds ldr r4, _0813F880 @ =gAnimBankAttacker ldrb r0, [r4] adds r1, r0, r1 @@ -929,7 +929,7 @@ sub_813F844: @ 813F844 ldr r1, _0813F888 @ =gPlayerParty b _0813F89C .align 2, 0 -_0813F87C: .4byte gObjectBankIDs +_0813F87C: .4byte gBankSpriteIds _0813F880: .4byte gAnimBankAttacker _0813F884: .4byte gBattlePartyID _0813F888: .4byte gPlayerParty @@ -1256,7 +1256,7 @@ sub_813FA94: @ 813FA94 ldr r0, _0813FB68 @ =sub_813FD90 str r0, [r4] ldr r3, _0813FB6C @ =gSharedMem + 0x17840 - ldr r1, _0813FB70 @ =gObjectBankIDs + ldr r1, _0813FB70 @ =gBankSpriteIds mov r2, r8 ldrb r0, [r2] adds r0, r1 @@ -1299,7 +1299,7 @@ _0813FB60: .4byte gSprites _0813FB64: .4byte gAnimBankTarget _0813FB68: .4byte sub_813FD90 _0813FB6C: .4byte gSharedMem + 0x17840 -_0813FB70: .4byte gObjectBankIDs +_0813FB70: .4byte gBankSpriteIds _0813FB74: .4byte gTasks _0813FB78: .4byte sub_813FB7C thumb_func_end sub_813FA94 @@ -1419,7 +1419,7 @@ _0813FBE0: str r0, [r4] movs r0, 0 bl GetBankByIdentity - ldr r1, _0813FCB0 @ =gObjectBankIDs + ldr r1, _0813FCB0 @ =gBankSpriteIds lsls r0, 24 lsrs r0, 24 adds r0, r1 @@ -1450,7 +1450,7 @@ _0813FCA0: .4byte gBallSpriteTemplates _0813FCA4: .4byte gSprites _0813FCA8: .4byte gAnimBankTarget _0813FCAC: .4byte SpriteCallbackDummy -_0813FCB0: .4byte gObjectBankIDs +_0813FCB0: .4byte gBankSpriteIds _0813FCB4: .4byte gTasks _0813FCB8: .4byte sub_813FCBC thumb_func_end sub_813FBB8 @@ -1463,7 +1463,7 @@ sub_813FCBC: @ 813FCBC ldr r6, _0813FD1C @ =gSprites movs r0, 0 bl GetBankByIdentity - ldr r1, _0813FD20 @ =gObjectBankIDs + ldr r1, _0813FD20 @ =gBankSpriteIds lsls r0, 24 lsrs r0, 24 adds r0, r1 @@ -1505,7 +1505,7 @@ _0813FD16: bx r0 .align 2, 0 _0813FD1C: .4byte gSprites -_0813FD20: .4byte gObjectBankIDs +_0813FD20: .4byte gBankSpriteIds _0813FD24: .4byte gTasks _0813FD28: .4byte sub_813FD90 _0813FD2C: .4byte sub_813FD34 @@ -1520,7 +1520,7 @@ sub_813FD34: @ 813FD34 ldr r6, _0813FD88 @ =gSprites movs r0, 0 bl GetBankByIdentity - ldr r4, _0813FD8C @ =gObjectBankIDs + ldr r4, _0813FD8C @ =gBankSpriteIds lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -1554,7 +1554,7 @@ _0813FD80: bx r0 .align 2, 0 _0813FD88: .4byte gSprites -_0813FD8C: .4byte gObjectBankIDs +_0813FD8C: .4byte gBankSpriteIds thumb_func_end sub_813FD34 thumb_func_start sub_813FD90 @@ -1572,7 +1572,7 @@ sub_813FD90: @ 813FD90 ldr r0, _0813FDB8 @ =0x0000ffd8 strh r0, [r4, 0x38] adds r0, r4, 0 - bl sub_80786EC + bl InitAnimSpriteTranslationOverDuration ldr r0, _0813FDBC @ =sub_813FDC0 str r0, [r4, 0x1C] pop {r4} @@ -1588,7 +1588,7 @@ sub_813FDC0: @ 813FDC0 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _0813FE5A @@ -1688,7 +1688,7 @@ sub_813FE70: @ 813FE70 ldr r0, _0813FEB8 @ =sub_813FEC8 str r0, [r4, 0x1C] ldr r2, _0813FEBC @ =gSprites - ldr r1, _0813FEC0 @ =gObjectBankIDs + ldr r1, _0813FEC0 @ =gBankSpriteIds ldr r0, _0813FEC4 @ =gAnimBankTarget ldrb r0, [r0] adds r0, r1 @@ -1707,7 +1707,7 @@ _0813FEAC: _0813FEB4: .4byte TaskDummy _0813FEB8: .4byte sub_813FEC8 _0813FEBC: .4byte gSprites -_0813FEC0: .4byte gObjectBankIDs +_0813FEC0: .4byte gBankSpriteIds _0813FEC4: .4byte gAnimBankTarget thumb_func_end sub_813FE70 @@ -1715,7 +1715,7 @@ _0813FEC4: .4byte gAnimBankTarget sub_813FEC8: @ 813FEC8 push {r4-r7,lr} adds r7, r0, 0 - ldr r1, _0813FF0C @ =gObjectBankIDs + ldr r1, _0813FF0C @ =gBankSpriteIds ldr r0, _0813FF10 @ =gAnimBankTarget ldrb r0, [r0] adds r0, r1 @@ -1748,7 +1748,7 @@ _0813FEFA: beq _0813FF1E b _0813FFDC .align 2, 0 -_0813FF0C: .4byte gObjectBankIDs +_0813FF0C: .4byte gBankSpriteIds _0813FF10: .4byte gAnimBankTarget _0813FF14: .4byte gTasks _0813FF18: @@ -2478,7 +2478,7 @@ _08140490: cmp r1, r0 bne _081404CC ldr r5, _081404D8 @ =gSprites - ldr r4, _081404DC @ =gObjectBankIDs + ldr r4, _081404DC @ =gBankSpriteIds ldrb r0, [r7] adds r0, r4 ldrb r1, [r0] @@ -2509,7 +2509,7 @@ _081404CC: .align 2, 0 _081404D4: .4byte 0x0000013b _081404D8: .4byte gSprites -_081404DC: .4byte gObjectBankIDs +_081404DC: .4byte gBankSpriteIds _081404E0: .4byte sub_81404E4 thumb_func_end sub_8140454 @@ -2697,7 +2697,7 @@ sub_81405F4: @ 81405F4 bl sub_8141314 _08140646: ldr r6, _081406B4 @ =gSprites - ldr r5, _081406B8 @ =gObjectBankIDs + ldr r5, _081406B8 @ =gBankSpriteIds ldr r4, _081406B0 @ =gAnimBankTarget ldrb r0, [r4] adds r0, r5 @@ -2748,7 +2748,7 @@ _081406A8: .4byte sub_81406BC _081406AC: .4byte gLastUsedItem _081406B0: .4byte gAnimBankTarget _081406B4: .4byte gSprites -_081406B8: .4byte gObjectBankIDs +_081406B8: .4byte gBankSpriteIds thumb_func_end sub_81405F4 thumb_func_start sub_81406BC @@ -2770,7 +2770,7 @@ sub_81406BC: @ 81406BC strb r0, [r2] _081406DA: ldr r4, _08140708 @ =gSprites - ldr r3, _0814070C @ =gObjectBankIDs + ldr r3, _0814070C @ =gBankSpriteIds ldr r2, _08140710 @ =gAnimBankTarget ldrb r0, [r2] adds r0, r3 @@ -2792,7 +2792,7 @@ _081406DA: b _08140734 .align 2, 0 _08140708: .4byte gSprites -_0814070C: .4byte gObjectBankIDs +_0814070C: .4byte gBankSpriteIds _08140710: .4byte gAnimBankTarget _08140714: ldr r6, _0814079C @ =0xfffffee0 @@ -2822,7 +2822,7 @@ _08140734: cmp r5, 0 beq _08140796 ldr r4, _081407A0 @ =gSprites - ldr r3, _081407A4 @ =gObjectBankIDs + ldr r3, _081407A4 @ =gBankSpriteIds ldr r2, _081407A8 @ =gAnimBankTarget ldrb r0, [r2] adds r0, r3 @@ -2867,7 +2867,7 @@ _08140796: .align 2, 0 _0814079C: .4byte 0xfffffee0 _081407A0: .4byte gSprites -_081407A4: .4byte gObjectBankIDs +_081407A4: .4byte gBankSpriteIds _081407A8: .4byte gAnimBankTarget _081407AC: .4byte gSharedMem + 0x17840 _081407B0: .4byte sub_81405C8 @@ -4581,7 +4581,7 @@ sub_814151C: @ 814151C lsrs r7, r0, 24 movs r0, 0 mov r8, r0 - ldr r0, _08141550 @ =gObjectBankIDs + ldr r0, _08141550 @ =gBankSpriteIds ldr r3, _08141554 @ =gAnimBankAttacker ldrb r2, [r3] adds r0, r2, r0 @@ -4601,7 +4601,7 @@ sub_814151C: @ 814151C beq _08141562 b _081416B6 .align 2, 0 -_08141550: .4byte gObjectBankIDs +_08141550: .4byte gBankSpriteIds _08141554: .4byte gAnimBankAttacker _08141558: .4byte gTasks _0814155C: @@ -4882,7 +4882,7 @@ _08141744: .align 2, 0 _08141778: .4byte REG_BLDALPHA _0814177C: - ldr r1, _081417C0 @ =gObjectBankIDs + ldr r1, _081417C0 @ =gBankSpriteIds ldr r3, _081417C4 @ =gAnimBankAttacker ldrb r0, [r3] adds r0, r1 @@ -4916,7 +4916,7 @@ _081417B8: pop {r0} bx r0 .align 2, 0 -_081417C0: .4byte gObjectBankIDs +_081417C0: .4byte gBankSpriteIds _081417C4: .4byte gAnimBankAttacker _081417C8: .4byte gSprites _081417CC: .4byte 0x06010000 @@ -5479,7 +5479,7 @@ sub_8141C30: @ 8141C30 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0 - bl sub_80787B0 + bl InitAnimSpritePos movs r0, 0x1E strh r0, [r4, 0x2E] movs r0, 0x1 @@ -5508,8 +5508,8 @@ sub_8141C30: @ 8141C30 ldr r0, _08141CA8 @ =0x0000ffe0 strh r0, [r4, 0x38] adds r0, r4, 0 - bl sub_80786EC - ldr r1, _08141CAC @ =gObjectBankIDs + bl InitAnimSpriteTranslationOverDuration + ldr r1, _08141CAC @ =gBankSpriteIds ldr r0, _08141CB0 @ =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 @@ -5529,7 +5529,7 @@ sub_8141C30: @ 8141C30 .align 2, 0 _08141CA4: .4byte gBattleAnimArgs _08141CA8: .4byte 0x0000ffe0 -_08141CAC: .4byte gObjectBankIDs +_08141CAC: .4byte gBankSpriteIds _08141CB0: .4byte gAnimBankAttacker _08141CB4: .4byte gSprites _08141CB8: .4byte sub_8141CBC @@ -5540,7 +5540,7 @@ sub_8141CBC: @ 8141CBC push {lr} adds r3, r0, 0 ldr r2, _08141CE4 @ =gSprites - ldr r1, _08141CE8 @ =gObjectBankIDs + ldr r1, _08141CE8 @ =gBankSpriteIds ldr r0, _08141CEC @ =gAnimBankAttacker ldrb r0, [r0] adds r0, r1 @@ -5560,7 +5560,7 @@ _08141CE0: bx r0 .align 2, 0 _08141CE4: .4byte gSprites -_08141CE8: .4byte gObjectBankIDs +_08141CE8: .4byte gBankSpriteIds _08141CEC: .4byte gAnimBankAttacker _08141CF0: .4byte sub_8141CF4 thumb_func_end sub_8141CBC @@ -5569,7 +5569,7 @@ _08141CF0: .4byte sub_8141CF4 sub_8141CF4: @ 8141CF4 push {r4,lr} adds r4, r0, 0 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _08141D16 @@ -5596,7 +5596,7 @@ sub_8141D20: @ 8141D20 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _08141D70 @ =gSprites - ldr r3, _08141D74 @ =gObjectBankIDs + ldr r3, _08141D74 @ =gBankSpriteIds ldr r2, _08141D78 @ =gAnimBankAttacker ldrb r0, [r2] adds r0, r3 @@ -5633,7 +5633,7 @@ _08141D68: bx r0 .align 2, 0 _08141D70: .4byte gSprites -_08141D74: .4byte gObjectBankIDs +_08141D74: .4byte gBankSpriteIds _08141D78: .4byte gAnimBankAttacker thumb_func_end sub_8141D20 diff --git a/asm/current.s b/asm/current.s index 4ef537dc3..fa3fec58a 100644 --- a/asm/current.s +++ b/asm/current.s @@ -12,7 +12,7 @@ sub_80D648C: @ 80D648C push {r4-r6,lr} adds r4, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r5, _080D6500 @ =gBattleAnimArgs ldrh r0, [r5, 0x6] strh r0, [r4, 0x2E] @@ -34,7 +34,7 @@ sub_80D648C: @ 80D648C lsrs r0, 24 strh r0, [r4, 0x36] adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 + bl InitAnimSpriteTranslationDeltas ldrh r0, [r5, 0x4] strh r0, [r4, 0x38] ldrh r0, [r5, 0xA] @@ -74,7 +74,7 @@ _080D6510: .4byte sub_80D6514 sub_80D6514: @ 80D6514 push {r4,lr} adds r4, r0, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas lsls r0, 24 cmp r0, 0 bne _080D657E @@ -442,7 +442,7 @@ _080D67F6: ldr r0, _080D6810 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] - ldr r0, _080D6814 @ =sub_80782D8 + ldr r0, _080D6814 @ =WaitAnimForDuration str r0, [r4, 0x1C] ldr r1, _080D6818 @ =DestroyAnimSprite adds r0, r4, 0 @@ -452,7 +452,7 @@ _080D67F6: bx r0 .align 2, 0 _080D6810: .4byte gBattleAnimArgs -_080D6814: .4byte sub_80782D8 +_080D6814: .4byte WaitAnimForDuration _080D6818: .4byte DestroyAnimSprite thumb_func_end sub_80D679C @@ -998,7 +998,7 @@ sub_80D6BB8: @ 80D6BB8 strh r0, [r4, 0x36] strh r6, [r4, 0x38] adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 + bl InitAnimSpriteTranslationDeltas ldr r1, _080D6CB0 @ =sub_80D6D00 adds r0, r4, 0 bl StoreSpriteCallbackInData @@ -1062,7 +1062,7 @@ _080D6CC6: sub_80D6CCC: @ 80D6CCC push {r4,lr} adds r4, r0, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas lsls r0, 24 cmp r0, 0 beq _080D6CF4 diff --git a/asm/cute_sketch.s b/asm/cute_sketch.s index 8cb6cdbd8..bc72a6ef5 100644 --- a/asm/cute_sketch.s +++ b/asm/cute_sketch.s @@ -5,7 +5,6 @@ .text - thumb_func_start sub_80FCB5C sub_80FCB5C: @ 80FCB5C push {r4-r7,lr} diff --git a/asm/dark.s b/asm/dark.s deleted file mode 100644 index 9f6ad3278..000000000 --- a/asm/dark.s +++ /dev/null @@ -1,2013 +0,0 @@ - .include "constants/gba_constants.inc" - .include "include/macros.inc" - - .syntax unified - - .text - - @ dark - - thumb_func_start sub_80DFF1C -sub_80DFF1C: @ 80DFF1C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080DFF50 @ =gBattleAnimArgs - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrb r1, [r5, 0x4] - adds r0, r4, 0 - bl StartSpriteAffineAnim - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x32] - ldr r0, _080DFF54 @ =sub_80DFF58 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DFF50: .4byte gBattleAnimArgs -_080DFF54: .4byte sub_80DFF58 - thumb_func_end sub_80DFF1C - - thumb_func_start sub_80DFF58 -sub_80DFF58: @ 80DFF58 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x36] - adds r0, r1 - strh r0, [r2, 0x36] - ldrh r1, [r2, 0x30] - ldrh r3, [r2, 0x38] - adds r1, r3 - strh r1, [r2, 0x38] - lsls r0, 16 - asrs r0, 24 - strh r0, [r2, 0x24] - lsls r1, 16 - asrs r1, 24 - strh r1, [r2, 0x26] - ldrh r0, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - bne _080DFF8E - ldr r0, _080DFF94 @ =sub_80DFF98 - str r0, [r2, 0x1C] -_080DFF8E: - pop {r0} - bx r0 - .align 2, 0 -_080DFF94: .4byte sub_80DFF98 - thumb_func_end sub_80DFF58 - - thumb_func_start sub_80DFF98 -sub_80DFF98: @ 80DFF98 - push {lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x36] - ldrh r0, [r3, 0x2E] - subs r1, r0 - strh r1, [r3, 0x36] - ldrh r0, [r3, 0x38] - ldrh r2, [r3, 0x30] - subs r0, r2 - strh r0, [r3, 0x38] - lsls r1, 16 - asrs r1, 24 - strh r1, [r3, 0x24] - lsls r0, 16 - asrs r0, 24 - strh r0, [r3, 0x26] - ldrh r0, [r3, 0x34] - subs r0, 0x1 - strh r0, [r3, 0x34] - lsls r0, 16 - cmp r0, 0 - bne _080DFFCA - adds r0, r3, 0 - bl move_anim_8074EE0 -_080DFFCA: - pop {r0} - bx r0 - thumb_func_end sub_80DFF98 - - thumb_func_start sub_80DFFD0 -sub_80DFFD0: @ 80DFFD0 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, _080DFFE4 @ =gBattleAnimArgs - movs r2, 0 - ldrsh r1, [r0, r2] - adds r3, r0, 0 - cmp r1, 0 - bne _080DFFEC - ldr r0, _080DFFE8 @ =gAnimBankAttacker - b _080DFFEE - .align 2, 0 -_080DFFE4: .4byte gBattleAnimArgs -_080DFFE8: .4byte gAnimBankAttacker -_080DFFEC: - ldr r0, _080E001C @ =gAnimBankTarget -_080DFFEE: - ldrb r5, [r0] - movs r6, 0x14 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x4 - ldr r7, _080E0020 @ =0x000003ff - adds r0, r7, 0 - ands r1, r0 - ldr r0, _080E0024 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - movs r1, 0x2 - ldrsh r0, [r3, r1] - cmp r0, 0x1 - beq _080E004C - cmp r0, 0x1 - bgt _080E0028 - cmp r0, 0 - beq _080E0032 - b _080E00A0 - .align 2, 0 -_080E001C: .4byte gAnimBankTarget -_080E0020: .4byte 0x000003ff -_080E0024: .4byte 0xfffffc00 -_080E0028: - cmp r0, 0x2 - beq _080E0066 - cmp r0, 0x3 - beq _080E007E - b _080E00A0 -_080E0032: - adds r0, r5, 0 - movs r1, 0x5 - bl sub_807A100 - subs r0, 0x8 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r4, 0x22] - b _080E00A0 -_080E004C: - adds r0, r5, 0 - movs r1, 0x5 - bl sub_807A100 - subs r0, 0xE - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x10 - strh r0, [r4, 0x22] - b _080E00A0 -_080E0066: - adds r0, r5, 0 - movs r1, 0x4 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - b _080E0094 -_080E007E: - adds r0, r5, 0 - movs r1, 0x4 - bl sub_807A100 - adds r0, 0xE - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x10 -_080E0094: - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - movs r6, 0xEC -_080E00A0: - movs r0, 0x20 - strh r0, [r4, 0x2E] - lsls r0, r6, 24 - asrs r0, 24 - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - adds r0, 0xC - strh r0, [r4, 0x36] - ldr r0, _080E00C8 @ =0x0000fff4 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - ldr r0, _080E00CC @ =sub_80E00D0 - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E00C8: .4byte 0x0000fff4 -_080E00CC: .4byte sub_80E00D0 - thumb_func_end sub_80DFFD0 - - thumb_func_start sub_80E00D0 -sub_80E00D0: @ 80E00D0 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080E00E4 - adds r0, r4, 0 - bl move_anim_8074EE0 -_080E00E4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E00D0 - - thumb_func_start sub_80E00EC -sub_80E00EC: @ 80E00EC - push {r4-r7,lr} - sub sp, 0x18 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080E0150 @ =gTasks - adds r5, r1, r0 - ldr r4, _080E0154 @ =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0x1 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1F - movs r6, 0 - strh r0, [r5, 0x16] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - subs r0, 0x7 - strh r0, [r5, 0x14] - ldrh r1, [r5, 0x16] - strh r1, [r5, 0x12] - strh r0, [r5, 0x10] - subs r1, r0 - lsls r1, 8 - strh r1, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r5, 0x24] - adds r0, 0x20 - strh r0, [r5, 0x26] - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080E015C - ldr r0, _080E0158 @ =0x0000fff4 - b _080E015E - .align 2, 0 -_080E0150: .4byte gTasks -_080E0154: .4byte gAnimBankAttacker -_080E0158: .4byte 0x0000fff4 -_080E015C: - ldr r0, _080E01A8 @ =0x0000ffc0 -_080E015E: - strh r0, [r5, 0x18] - ldr r0, _080E01AC @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankIdentity_permutated - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xE] - cmp r0, 0x1 - bne _080E01C4 - add r4, sp, 0xC - adds r0, r4, 0 - bl sub_8078914 - ldr r0, _080E01B0 @ =gBattle_BG1_Y - ldrh r0, [r0] - strh r0, [r5, 0x1C] - ldr r1, _080E01B4 @ =REG_BLDCNT - ldr r2, _080E01B8 @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - ldrb r1, [r4, 0x8] - lsls r1, 4 - movs r0, 0 - movs r2, 0x20 - bl FillPalette - ldr r0, _080E01BC @ =REG_BG1VOFS - str r0, [sp] - movs r7, 0x2 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080E01F4 - ldr r1, _080E01C0 @ =gBattle_BG2_X - b _080E01EE - .align 2, 0 -_080E01A8: .4byte 0x0000ffc0 -_080E01AC: .4byte gAnimBankAttacker -_080E01B0: .4byte gBattle_BG1_Y -_080E01B4: .4byte REG_BLDCNT -_080E01B8: .4byte 0x00003f42 -_080E01BC: .4byte REG_BG1VOFS -_080E01C0: .4byte gBattle_BG2_X -_080E01C4: - ldr r0, _080E0278 @ =gBattle_BG2_Y - ldrh r0, [r0] - strh r0, [r5, 0x1C] - ldr r1, _080E027C @ =REG_BLDCNT - ldr r2, _080E0280 @ =0x00003f44 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - movs r1, 0x90 - movs r2, 0x20 - bl FillPalette - ldr r0, _080E0284 @ =REG_BG2VOFS - str r0, [sp] - movs r7, 0x4 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080E01F4 - ldr r1, _080E0288 @ =gBattle_BG1_X -_080E01EE: - ldrh r0, [r1] - adds r0, 0xF0 - strh r0, [r1] -_080E01F4: - ldr r0, _080E028C @ =0xa2600001 - str r0, [sp, 0x4] - mov r2, sp - movs r1, 0 - movs r0, 0x1 - strb r0, [r2, 0x8] - mov r0, sp - strb r1, [r0, 0x9] - strh r1, [r5, 0x1E] - movs r0, 0x10 - strh r0, [r5, 0x20] - strh r1, [r5, 0x8] - strh r1, [r5, 0xA] - strh r1, [r5, 0xC] - movs r0, 0x3 - bl sub_80E08CC - movs r3, 0 - ldr r4, _080E0290 @ =gScanlineEffectRegBuffers - movs r0, 0xF0 - lsls r0, 3 - adds r6, r4, r0 -_080E0220: - lsls r1, r3, 1 - adds r2, r1, r4 - ldrh r0, [r5, 0x1C] - strh r0, [r2] - adds r1, r6 - ldrh r0, [r5, 0x1C] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x6F - bls _080E0220 - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl ScanlineEffect_SetParams - ldr r1, _080E0294 @ =REG_WINOUT - movs r0, 0x3F - eors r7, r0 - movs r2, 0xFC - lsls r2, 6 - adds r0, r2, 0 - orrs r7, r0 - strh r7, [r1] - subs r1, 0x2 - adds r2, 0x3F - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _080E0298 @ =gBattle_WIN0H - ldrh r0, [r5, 0x24] - lsls r0, 8 - ldrh r1, [r5, 0x26] - orrs r0, r1 - strh r0, [r2] - ldr r1, _080E029C @ =gBattle_WIN0V - movs r0, 0xA0 - strh r0, [r1] - ldr r0, _080E02A0 @ =sub_80E02A4 - str r0, [r5] - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E0278: .4byte gBattle_BG2_Y -_080E027C: .4byte REG_BLDCNT -_080E0280: .4byte 0x00003f44 -_080E0284: .4byte REG_BG2VOFS -_080E0288: .4byte gBattle_BG1_X -_080E028C: .4byte 0xa2600001 -_080E0290: .4byte gScanlineEffectRegBuffers -_080E0294: .4byte REG_WINOUT -_080E0298: .4byte gBattle_WIN0H -_080E029C: .4byte gBattle_WIN0V -_080E02A0: .4byte sub_80E02A4 - thumb_func_end sub_80E00EC - - thumb_func_start sub_80E02A4 -sub_80E02A4: @ 80E02A4 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E02C8 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080E02BE - b _080E03B6 -_080E02BE: - lsls r0, 2 - ldr r1, _080E02CC @ =_080E02D0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E02C8: .4byte gTasks -_080E02CC: .4byte _080E02D0 - .align 2, 0 -_080E02D0: - .4byte _080E02E4 - .4byte _080E0344 - .4byte _080E035E - .4byte _080E039C - .4byte _080E03B0 -_080E02E4: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E03B6 - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E0314 - ldrh r1, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - cmp r0, 0xC - beq _080E0322 - adds r0, r1, 0x1 - strh r0, [r4, 0x1E] - b _080E0322 -_080E0314: - ldrh r1, [r4, 0x20] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - beq _080E0322 - subs r0, r1, 0x1 - strh r0, [r4, 0x20] -_080E0322: - ldr r2, _080E0340 @ =REG_BLDALPHA - ldrh r0, [r4, 0x20] - lsls r0, 8 - ldrh r1, [r4, 0x1E] - orrs r0, r1 - strh r0, [r2] - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0xC - bne _080E03B6 - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - bne _080E03B6 - b _080E03A2 - .align 2, 0 -_080E0340: .4byte REG_BLDALPHA -_080E0344: - ldrh r0, [r4, 0x10] - subs r0, 0x8 - strh r0, [r4, 0x10] - adds r0, r4, 0 - bl sub_80E079C - movs r0, 0x10 - ldrsh r1, [r4, r0] - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r1, r0 - bge _080E03B6 - b _080E03A2 -_080E035E: - ldrh r0, [r4, 0x10] - subs r0, 0x8 - strh r0, [r4, 0x10] - adds r0, r4, 0 - bl sub_80E079C - ldrh r1, [r4, 0x24] - adds r1, 0x4 - strh r1, [r4, 0x24] - ldrh r0, [r4, 0x26] - subs r2, r0, 0x4 - strh r2, [r4, 0x26] - lsls r1, 16 - lsls r0, r2, 16 - cmp r1, r0 - blt _080E0380 - strh r2, [r4, 0x24] -_080E0380: - ldr r3, _080E0398 @ =gBattle_WIN0H - ldrh r2, [r4, 0x24] - lsls r0, r2, 8 - ldrh r1, [r4, 0x26] - orrs r0, r1 - strh r0, [r3] - lsls r2, 16 - lsls r1, 16 - cmp r2, r1 - bne _080E03B6 - b _080E03A2 - .align 2, 0 -_080E0398: .4byte gBattle_WIN0H -_080E039C: - ldr r1, _080E03AC @ =gScanlineEffect - movs r0, 0x3 - strb r0, [r1, 0x15] -_080E03A2: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080E03B6 - .align 2, 0 -_080E03AC: .4byte gScanlineEffect -_080E03B0: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080E03B6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E02A4 - - thumb_func_start sub_80E03BC -sub_80E03BC: @ 80E03BC - push {r4-r7,lr} - sub sp, 0x18 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080E03E4 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bls _080E03D8 - b _080E05F2 -_080E03D8: - lsls r0, 2 - ldr r1, _080E03E8 @ =_080E03EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E03E4: .4byte gTasks -_080E03E8: .4byte _080E03EC - .align 2, 0 -_080E03EC: - .4byte _080E0400 - .4byte _080E048C - .4byte _080E04D0 - .4byte _080E053C - .4byte _080E05A4 -_080E0400: - bl IsContest - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080E043C - ldr r0, _080E042C @ =gBattle_WIN0H - movs r1, 0 - strh r1, [r0] - ldr r0, _080E0430 @ =gBattle_WIN0V - strh r1, [r0] - ldr r0, _080E0434 @ =REG_WININ - ldr r2, _080E0438 @ =0x00003f3f - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _080E05F2 - .align 2, 0 -_080E042C: .4byte gBattle_WIN0H -_080E0430: .4byte gBattle_WIN0V -_080E0434: .4byte REG_WININ -_080E0438: .4byte 0x00003f3f -_080E043C: - ldr r0, _080E045C @ =gAnimBankTarget - ldrb r0, [r0] - bl GetBankIdentity_permutated - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xE] - cmp r0, 0x1 - bne _080E046C - ldr r1, _080E0460 @ =REG_BLDCNT - ldr r2, _080E0464 @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E0468 @ =gBattle_BG2_X - b _080E0476 - .align 2, 0 -_080E045C: .4byte gAnimBankTarget -_080E0460: .4byte REG_BLDCNT -_080E0464: .4byte 0x00003f42 -_080E0468: .4byte gBattle_BG2_X -_080E046C: - ldr r1, _080E0480 @ =REG_BLDCNT - ldr r2, _080E0484 @ =0x00003f44 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E0488 @ =gBattle_BG1_X -_080E0476: - ldrh r0, [r1] - adds r0, 0xF0 - strh r0, [r1] - b _080E0590 - .align 2, 0 -_080E0480: .4byte REG_BLDCNT -_080E0484: .4byte 0x00003f44 -_080E0488: .4byte gBattle_BG1_X -_080E048C: - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080E04B4 - mov r0, sp - bl sub_8078914 - ldr r0, _080E04B0 @ =gBattle_BG1_Y - ldrh r0, [r0] - strh r0, [r5, 0x1C] - mov r0, sp - ldrb r1, [r0, 0x8] - lsls r1, 4 - movs r0, 0 - movs r2, 0x20 - bl FillPalette - b _080E04C4 - .align 2, 0 -_080E04B0: .4byte gBattle_BG1_Y -_080E04B4: - ldr r0, _080E04CC @ =gBattle_BG2_Y - ldrh r0, [r0] - strh r0, [r5, 0x1C] - movs r0, 0 - movs r1, 0x90 - movs r2, 0x20 - bl FillPalette -_080E04C4: - movs r0, 0x3 - bl sub_80E08CC - b _080E0590 - .align 2, 0 -_080E04CC: .4byte gBattle_BG2_Y -_080E04D0: - ldr r4, _080E051C @ =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0x1 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1F - movs r6, 0 - strh r0, [r5, 0x16] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - subs r0, 0x7 - strh r0, [r5, 0x14] - ldrh r1, [r5, 0x16] - subs r1, r0 - lsls r1, 8 - strh r1, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - subs r1, r0, 0x4 - strh r1, [r5, 0x24] - adds r0, 0x4 - strh r0, [r5, 0x26] - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080E0524 - ldr r0, _080E0520 @ =0x0000fff4 - b _080E0526 - .align 2, 0 -_080E051C: .4byte gAnimBankTarget -_080E0520: .4byte 0x0000fff4 -_080E0524: - ldr r0, _080E0538 @ =0x0000ffc0 -_080E0526: - strh r0, [r5, 0x18] - ldrh r0, [r5, 0x18] - strh r0, [r5, 0x10] - strh r0, [r5, 0x12] - movs r0, 0xC - strh r0, [r5, 0x1E] - movs r0, 0x8 - strh r0, [r5, 0x20] - b _080E0590 - .align 2, 0 -_080E0538: .4byte 0x0000ffc0 -_080E053C: - movs r2, 0xE - ldrsh r0, [r5, r2] - cmp r0, 0x1 - bne _080E054C - ldr r0, _080E0548 @ =REG_BG1VOFS - b _080E054E - .align 2, 0 -_080E0548: .4byte REG_BG1VOFS -_080E054C: - ldr r0, _080E0598 @ =REG_BG2VOFS -_080E054E: - str r0, [sp, 0xC] - movs r3, 0 - add r4, sp, 0xC - ldr r6, _080E059C @ =gScanlineEffectRegBuffers - movs r0, 0xF0 - lsls r0, 3 - adds r7, r6, r0 -_080E055C: - lsls r1, r3, 1 - adds r2, r1, r6 - ldrh r0, [r5, 0x1C] - adds r0, 0x9F - subs r0, r3 - strh r0, [r2] - adds r1, r7 - ldrh r0, [r5, 0x1C] - adds r0, 0x9F - subs r0, r3 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x6F - bls _080E055C - ldr r1, _080E05A0 @ =0xa2600001 - str r1, [r4, 0x4] - movs r2, 0 - movs r0, 0x1 - strb r0, [r4, 0x8] - strb r2, [r4, 0x9] - ldr r0, [sp, 0xC] - ldr r2, [r4, 0x8] - bl ScanlineEffect_SetParams -_080E0590: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080E05F2 - .align 2, 0 -_080E0598: .4byte REG_BG2VOFS -_080E059C: .4byte gScanlineEffectRegBuffers -_080E05A0: .4byte 0xa2600001 -_080E05A4: - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080E05BC - ldr r1, _080E05B4 @ =REG_WINOUT - ldr r2, _080E05B8 @ =0x00003f3d - b _080E05C0 - .align 2, 0 -_080E05B4: .4byte REG_WINOUT -_080E05B8: .4byte 0x00003f3d -_080E05BC: - ldr r1, _080E05FC @ =REG_WINOUT - ldr r2, _080E0600 @ =0x00003f3b -_080E05C0: - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E0604 @ =REG_WININ - ldr r2, _080E0608 @ =0x00003f3f - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _080E060C @ =gBattle_WIN0H - ldrh r0, [r5, 0x24] - lsls r0, 8 - ldrh r1, [r5, 0x26] - orrs r0, r1 - strh r0, [r2] - ldr r1, _080E0610 @ =gBattle_WIN0V - movs r0, 0xA0 - strh r0, [r1] - movs r0, 0 - strh r0, [r5, 0x8] - strh r0, [r5, 0xA] - strh r0, [r5, 0xC] - ldr r1, _080E0614 @ =REG_BLDALPHA - ldr r2, _080E0618 @ =0x0000080c - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080E061C @ =sub_80E0620 - str r0, [r5] -_080E05F2: - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E05FC: .4byte REG_WINOUT -_080E0600: .4byte 0x00003f3b -_080E0604: .4byte REG_WININ -_080E0608: .4byte 0x00003f3f -_080E060C: .4byte gBattle_WIN0H -_080E0610: .4byte gBattle_WIN0V -_080E0614: .4byte REG_BLDALPHA -_080E0618: .4byte 0x0000080c -_080E061C: .4byte sub_80E0620 - thumb_func_end sub_80E03BC - - thumb_func_start sub_80E0620 -sub_80E0620: @ 80E0620 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E0644 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080E063A - b _080E0784 -_080E063A: - lsls r0, 2 - ldr r1, _080E0648 @ =_080E064C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E0644: .4byte gTasks -_080E0648: .4byte _080E064C - .align 2, 0 -_080E064C: - .4byte _080E0660 - .4byte _080E068C - .4byte _080E06F4 - .4byte _080E0754 - .4byte _080E0768 -_080E0660: - ldrh r0, [r4, 0x12] - adds r0, 0x8 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r4, 0x16] - movs r3, 0x16 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _080E0676 - strh r2, [r4, 0x12] -_080E0676: - adds r0, r4, 0 - bl sub_80E079C - movs r0, 0x12 - ldrsh r1, [r4, r0] - movs r2, 0x16 - ldrsh r0, [r4, r2] - cmp r1, r0 - beq _080E068A - b _080E0784 -_080E068A: - b _080E075A -_080E068C: - movs r3, 0x26 - ldrsh r0, [r4, r3] - movs r2, 0x24 - ldrsh r1, [r4, r2] - subs r0, r1 - cmp r0, 0x3F - bgt _080E06A8 - ldrh r0, [r4, 0x24] - subs r0, 0x4 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x26] - adds r0, 0x4 - strh r0, [r4, 0x26] - b _080E06AC -_080E06A8: - movs r0, 0x1 - strh r0, [r4, 0xA] -_080E06AC: - ldr r2, _080E06F0 @ =gBattle_WIN0H - ldrh r0, [r4, 0x24] - lsls r0, 8 - ldrh r1, [r4, 0x26] - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r4, 0x10] - adds r0, 0x8 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r4, 0x14] - movs r3, 0x14 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _080E06CE - strh r2, [r4, 0x10] -_080E06CE: - adds r0, r4, 0 - bl sub_80E079C - movs r0, 0x10 - ldrsh r1, [r4, r0] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080E0784 - movs r3, 0xA - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080E0784 - movs r0, 0 - strh r0, [r4, 0xA] - b _080E075A - .align 2, 0 -_080E06F0: .4byte gBattle_WIN0H -_080E06F4: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E0784 - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E0724 - ldrh r1, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080E0732 - subs r0, r1, 0x1 - strh r0, [r4, 0x1E] - b _080E0732 -_080E0724: - ldrh r1, [r4, 0x20] - movs r3, 0x20 - ldrsh r0, [r4, r3] - cmp r0, 0xF - bgt _080E0732 - adds r0, r1, 0x1 - strh r0, [r4, 0x20] -_080E0732: - ldr r2, _080E0750 @ =REG_BLDALPHA - ldrh r0, [r4, 0x20] - lsls r0, 8 - ldrh r1, [r4, 0x1E] - orrs r0, r1 - strh r0, [r2] - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080E0784 - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x10 - bne _080E0784 - b _080E075A - .align 2, 0 -_080E0750: .4byte REG_BLDALPHA -_080E0754: - ldr r1, _080E0764 @ =gScanlineEffect - movs r0, 0x3 - strb r0, [r1, 0x15] -_080E075A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080E0784 - .align 2, 0 -_080E0764: .4byte gScanlineEffect -_080E0768: - ldr r0, _080E078C @ =gBattle_WIN0H - movs r1, 0 - strh r1, [r0] - ldr r0, _080E0790 @ =gBattle_WIN0V - strh r1, [r0] - ldr r0, _080E0794 @ =REG_WININ - ldr r3, _080E0798 @ =0x00003f3f - adds r1, r3, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080E0784: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E078C: .4byte gBattle_WIN0H -_080E0790: .4byte gBattle_WIN0V -_080E0794: .4byte REG_WININ -_080E0798: .4byte 0x00003f3f - thumb_func_end sub_80E0620 - - thumb_func_start sub_80E079C -sub_80E079C: @ 80E079C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldrh r0, [r6, 0x12] - ldrh r4, [r6, 0x10] - subs r0, r4 - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - beq _080E0890 - movs r2, 0x22 - ldrsh r0, [r6, r2] - bl __divsi3 - mov r8, r0 - movs r3, 0x14 - ldrsh r0, [r6, r3] - lsls r5, r0, 8 - lsls r0, r4, 16 - movs r4, 0 - cmp r0, 0 - ble _080E07FC - ldr r0, _080E0888 @ =gScanlineEffectRegBuffers - mov r12, r0 - ldr r7, _080E088C @ =gScanlineEffect -_080E07D0: - lsls r2, r4, 16 - asrs r2, 16 - lsls r3, r2, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r3, r0 - add r3, r12 - adds r1, r2, 0 - subs r1, 0x9F - ldrh r0, [r6, 0x1C] - subs r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - lsrs r4, r2, 16 - asrs r2, 16 - movs r1, 0x10 - ldrsh r0, [r6, r1] - cmp r2, r0 - blt _080E07D0 -_080E07FC: - ldrh r4, [r6, 0x10] - lsls r3, r4, 16 - asrs r1, r3, 16 - movs r2, 0x12 - ldrsh r0, [r6, r2] - cmp r1, r0 - bgt _080E0846 - ldr r0, _080E0888 @ =gScanlineEffectRegBuffers - mov r12, r0 - ldr r7, _080E088C @ =gScanlineEffect -_080E0810: - asrs r4, r3, 16 - cmp r4, 0 - blt _080E0832 - asrs r1, r5, 8 - subs r1, r4 - lsls r3, r4, 1 - ldrb r2, [r7, 0x14] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 7 - adds r3, r0 - add r3, r12 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r6, 0x1C] - adds r1, r2 - strh r1, [r3] -_080E0832: - add r5, r8 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r3, r4, 16 - asrs r1, r3, 16 - movs r2, 0x12 - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _080E0810 -_080E0846: - movs r3, 0x1C - ldrsh r0, [r6, r3] - adds r0, 0x9F - lsls r2, r4, 16 - asrs r1, r2, 16 - subs r5, r0, r1 - movs r3, 0x16 - ldrsh r0, [r6, r3] - cmp r1, r0 - bge _080E08BE - ldr r7, _080E0888 @ =gScanlineEffectRegBuffers - ldr r4, _080E088C @ =gScanlineEffect -_080E085E: - asrs r3, r2, 16 - cmp r3, 0 - blt _080E0876 - lsls r2, r3, 1 - ldrb r1, [r4, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - strh r5, [r2] - subs r5, 0x1 -_080E0876: - adds r0, r3, 0x1 - lsls r2, r0, 16 - asrs r1, r2, 16 - movs r3, 0x16 - ldrsh r0, [r6, r3] - cmp r1, r0 - blt _080E085E - b _080E08BE - .align 2, 0 -_080E0888: .4byte gScanlineEffectRegBuffers -_080E088C: .4byte gScanlineEffect -_080E0890: - movs r1, 0x1C - ldrsh r0, [r6, r1] - adds r5, r0, 0 - adds r5, 0x9F - movs r4, 0 - ldr r3, _080E08C8 @ =gScanlineEffectRegBuffers - movs r2, 0xF0 - lsls r2, 3 - adds r6, r3, r2 -_080E08A2: - lsls r0, r4, 16 - asrs r0, 16 - lsls r2, r0, 1 - adds r1, r2, r3 - strh r5, [r1] - adds r2, r6 - strh r5, [r2] - subs r5, 0x1 - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x6F - ble _080E08A2 -_080E08BE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E08C8: .4byte gScanlineEffectRegBuffers - thumb_func_end sub_80E079C - - thumb_func_start sub_80E08CC -sub_80E08CC: @ 80E08CC - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - movs r4, 0 - ldr r7, _080E0914 @ =gSprites - movs r1, 0x3 - ands r0, r1 - lsls r5, r0, 2 - movs r0, 0xD - negs r0, r0 - adds r6, r0, 0 -_080E08E2: - lsls r0, r4, 24 - lsrs r0, 24 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080E0902 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r0, [r1, 0x5] - ands r0, r6 - orrs r0, r5 - strb r0, [r1, 0x5] -_080E0902: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080E08E2 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E0914: .4byte gSprites - thumb_func_end sub_80E08CC - - thumb_func_start sub_80E0918 -sub_80E0918: @ 80E0918 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r6, _080E09B8 @ =gAnimBankAttacker - ldrb r0, [r6] - bl GetBankIdentity_permutated - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r4, r1, 31 - ldrb r0, [r6] - adds r1, r4, 0 - bl sub_8076034 - ldr r0, _080E09BC @ =gSprites - mov r9, r0 - ldr r0, _080E09C0 @ =gObjectBankIDs - mov r8, r0 - ldrb r0, [r6] - add r0, r8 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r9 - adds r1, 0x3E - ldrb r2, [r1] - movs r7, 0x5 - negs r7, r7 - adds r0, r7, 0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r6] - movs r5, 0x2 - eors r0, r5 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080E09A2 - ldrb r0, [r6] - eors r0, r5 - movs r1, 0x1 - eors r4, r1 - adds r1, r4, 0 - bl sub_8076034 - ldrb r0, [r6] - eors r0, r5 - add r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r0, 0x3E - ldrb r2, [r0] - adds r1, r7, 0 - ands r1, r2 - strb r1, [r0] -_080E09A2: - mov r0, r10 - bl DestroyAnimVisualTask - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E09B8: .4byte gAnimBankAttacker -_080E09BC: .4byte gSprites -_080E09C0: .4byte gObjectBankIDs - thumb_func_end sub_80E0918 - - thumb_func_start sub_80E09C4 -sub_80E09C4: @ 80E09C4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _080E0A0C @ =gAnimBankAttacker - ldrb r0, [r4] - bl GetBankIdentity_permutated - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r5, r1, 31 - adds r0, r5, 0 - bl sub_8076464 - ldrb r1, [r4] - movs r0, 0x2 - eors r0, r1 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080E0A00 - movs r0, 0x1 - eors r5, r0 - adds r0, r5, 0 - bl sub_8076464 -_080E0A00: - adds r0, r6, 0 - bl DestroyAnimVisualTask - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E0A0C: .4byte gAnimBankAttacker - thumb_func_end sub_80E09C4 - - thumb_func_start sub_80E0A10 -sub_80E0A10: @ 80E0A10 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080E0A40 @ =gBattleAnimArgs - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrb r1, [r1, 0x4] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _080E0A44 @ =sub_8078600 - str r0, [r4, 0x1C] - ldr r1, _080E0A48 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E0A40: .4byte gBattleAnimArgs -_080E0A44: .4byte sub_8078600 -_080E0A48: .4byte DestroyAnimSprite - thumb_func_end sub_80E0A10 - - thumb_func_start sub_80E0A4C -sub_80E0A4C: @ 80E0A4C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r7, 0 - ldr r0, _080E0B50 @ =gBattle_WIN0H - strh r7, [r0] - ldr r0, _080E0B54 @ =gBattle_WIN0V - strh r7, [r0] - ldr r1, _080E0B58 @ =REG_WININ - ldr r2, _080E0B5C @ =0x00003f3f - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080E0B60 @ =0x00003f3d - adds r0, r3, 0 - strh r0, [r1] - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _080E0B64 @ =REG_BLDCNT - ldr r2, _080E0B68 @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080E0B6C @ =0x00000c08 - adds r0, r3, 0 - strh r0, [r1] - ldr r5, _080E0B70 @ =REG_BG1CNT - ldrb r1, [r5] - movs r0, 0x4 - negs r0, r0 - mov r8, r0 - ands r0, r1 - strb r0, [r5] - ldrb r1, [r5, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r5, 0x1] - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080E0AC4 - ldrb r0, [r5] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r5] -_080E0AC4: - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _080E0B40 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080E0B40 - ldr r4, _080E0B74 @ =gAnimBankAttacker - ldrb r0, [r4] - bl GetBankIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080E0AF4 - ldrb r0, [r4] - bl GetBankIdentity - lsls r0, 24 - cmp r0, 0 - bne _080E0B40 -_080E0AF4: - ldrb r0, [r4] - movs r6, 0x2 - eors r0, r6 - bl IsAnimBankSpriteVisible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080E0B40 - ldr r3, _080E0B78 @ =gSprites - ldr r1, _080E0B7C @ =gObjectBankIDs - ldrb r0, [r4] - eors r0, r6 - adds r0, r1 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldrb r1, [r5] - mov r0, r8 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r5] - movs r7, 0x1 -_080E0B40: - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080E0B84 - ldr r0, _080E0B80 @ =gSharedMem + 0x19348 - ldrh r5, [r0] - b _080E0BCC - .align 2, 0 -_080E0B50: .4byte gBattle_WIN0H -_080E0B54: .4byte gBattle_WIN0V -_080E0B58: .4byte REG_WININ -_080E0B5C: .4byte 0x00003f3f -_080E0B60: .4byte 0x00003f3d -_080E0B64: .4byte REG_BLDCNT -_080E0B68: .4byte 0x00003f42 -_080E0B6C: .4byte 0x00000c08 -_080E0B70: .4byte REG_BG1CNT -_080E0B74: .4byte gAnimBankAttacker -_080E0B78: .4byte gSprites -_080E0B7C: .4byte gObjectBankIDs -_080E0B80: .4byte gSharedMem + 0x19348 -_080E0B84: - ldr r4, _080E0BA4 @ =gAnimBankAttacker - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080E0BB0 - ldr r1, _080E0BA8 @ =gBattlePartyID - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E0BAC @ =gEnemyParty - b _080E0BC0 - .align 2, 0 -_080E0BA4: .4byte gAnimBankAttacker -_080E0BA8: .4byte gBattlePartyID -_080E0BAC: .4byte gEnemyParty -_080E0BB0: - ldr r1, _080E0C58 @ =gBattlePartyID - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E0C5C @ =gPlayerParty -_080E0BC0: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 -_080E0BCC: - movs r0, 0 - bl GetAnimBankSpriteId - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080E0C60 @ =gAnimBankAttacker - ldrb r0, [r0] - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_807A4A0 - lsls r0, 24 - lsrs r5, r0, 24 - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r2, _080E0C64 @ =0x040000d4 - add r0, sp, 0xC - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, _080E0C68 @ =0x85000400 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r0, _080E0C6C @ =gUnknown_08D1D574 - bl LZDecompressVram - ldr r0, _080E0C70 @ =gUnknown_08D1D410 - ldr r1, [sp] - bl LZDecompressVram - ldr r0, _080E0C74 @ =gUnknown_08D1D54C - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r2, _080E0C78 @ =gBattle_BG1_X - ldr r0, _080E0C7C @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x20] - negs r0, r0 - adds r0, 0x60 - strh r0, [r2] - ldr r2, _080E0C80 @ =gBattle_BG1_Y - ldrh r0, [r1, 0x22] - negs r0, r0 - adds r0, 0x20 - strh r0, [r2] - ldrb r0, [r1, 0x5] - lsrs r0, 4 - adds r0, 0x10 - adds r1, r0, 0 - ldr r2, _080E0C84 @ =gBattleAnimArgs - movs r3, 0x2 - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080E0C88 - adds r0, r1, 0 - movs r1, 0 - bl sub_8079108 - b _080E0C94 - .align 2, 0 -_080E0C58: .4byte gBattlePartyID -_080E0C5C: .4byte gPlayerParty -_080E0C60: .4byte gAnimBankAttacker -_080E0C64: .4byte 0x040000d4 -_080E0C68: .4byte 0x85000400 -_080E0C6C: .4byte gUnknown_08D1D574 -_080E0C70: .4byte gUnknown_08D1D410 -_080E0C74: .4byte gUnknown_08D1D54C -_080E0C78: .4byte gBattle_BG1_X -_080E0C7C: .4byte gSprites -_080E0C80: .4byte gBattle_BG1_Y -_080E0C84: .4byte gBattleAnimArgs -_080E0C88: - lsls r0, r1, 4 - ldrh r3, [r2, 0x4] - movs r1, 0x10 - movs r2, 0xB - bl BlendPalette -_080E0C94: - ldr r1, _080E0CC4 @ =gTasks - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x8] - ldr r2, _080E0CC8 @ =gBattleAnimArgs - ldrh r1, [r2] - strh r1, [r0, 0xA] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0xC] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0xE] - strh r7, [r0, 0x14] - ldr r1, _080E0CCC @ =sub_80E0CD0 - str r1, [r0] - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E0CC4: .4byte gTasks -_080E0CC8: .4byte gBattleAnimArgs -_080E0CCC: .4byte sub_80E0CD0 - thumb_func_end sub_80E0A4C - - thumb_func_start sub_80E0CD0 -sub_80E0CD0: @ 80E0CD0 - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080E0DF0 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r0, 0x4 - movs r5, 0 - strh r0, [r4, 0x1C] - ldr r2, _080E0DF4 @ =gBattle_BG1_X - ldrh r3, [r2] - subs r1, r3, 0x4 - strh r1, [r2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x80 - bne _080E0DE8 - strh r5, [r4, 0x1C] - adds r0, r3, 0 - adds r0, 0x7C - strh r0, [r2] - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080E0DE8 - movs r0, 0 - bl sub_8076464 - ldr r0, _080E0DF8 @ =gBattle_WIN0H - strh r5, [r0] - ldr r0, _080E0DFC @ =gBattle_WIN0V - strh r5, [r0] - ldr r0, _080E0E00 @ =REG_WININ - ldr r2, _080E0E04 @ =0x00003f3f - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080E0D40 - ldr r2, _080E0E08 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080E0D40: - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - eors r0, r1 - strh r0, [r2] - ldr r0, _080E0E0C @ =REG_BLDCNT - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - ldr r6, _080E0E10 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1, 0x5] - lsrs r0, 4 - adds r0, 0x10 - adds r1, r0, 0 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080E0D84 - adds r0, r1, 0 - movs r1, 0x1 - bl sub_8079108 -_080E0D84: - movs r3, 0x8 - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite - mov r0, sp - bl sub_8078914 - ldr r2, [sp, 0x4] - str r5, [sp, 0xC] - ldr r1, _080E0E14 @ =0x040000d4 - add r0, sp, 0xC - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _080E0E18 @ =0x85000200 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080E0DE2 - ldr r2, _080E0E1C @ =gObjectBankIDs - ldr r0, _080E0E20 @ =gAnimBankAttacker - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - adds r0, r2 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] -_080E0DE2: - adds r0, r7, 0 - bl DestroyAnimVisualTask -_080E0DE8: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E0DF0: .4byte gTasks -_080E0DF4: .4byte gBattle_BG1_X -_080E0DF8: .4byte gBattle_WIN0H -_080E0DFC: .4byte gBattle_WIN0V -_080E0E00: .4byte REG_WININ -_080E0E04: .4byte 0x00003f3f -_080E0E08: .4byte REG_BG1CNT -_080E0E0C: .4byte REG_BLDCNT -_080E0E10: .4byte gSprites -_080E0E14: .4byte 0x040000d4 -_080E0E18: .4byte 0x85000200 -_080E0E1C: .4byte gObjectBankIDs -_080E0E20: .4byte gAnimBankAttacker - thumb_func_end sub_80E0CD0 - - thumb_func_start sub_80E0E24 -sub_80E0E24: @ 80E0E24 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _080E0E44 @ =gBattleAnimArgs - movs r2, 0 - ldrsh r1, [r0, r2] - adds r2, r0, 0 - cmp r1, 0x7 - bhi _080E0E88 - lsls r0, r1, 2 - ldr r1, _080E0E48 @ =_080E0E4C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E0E44: .4byte gBattleAnimArgs -_080E0E48: .4byte _080E0E4C - .align 2, 0 -_080E0E4C: - .4byte _080E0E6C - .4byte _080E0E6C - .4byte _080E0E6C - .4byte _080E0E6C - .4byte _080E0E78 - .4byte _080E0E7C - .4byte _080E0E80 - .4byte _080E0E84 -_080E0E6C: - ldrb r0, [r2] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r2, r0, 24 - b _080E0E8A -_080E0E78: - movs r4, 0 - b _080E0E90 -_080E0E7C: - movs r4, 0x2 - b _080E0E90 -_080E0E80: - movs r4, 0x1 - b _080E0E90 -_080E0E84: - movs r4, 0x3 - b _080E0E90 -_080E0E88: - movs r2, 0xFF -_080E0E8A: - movs r0, 0 - cmp r0, 0 - beq _080E0EB6 -_080E0E90: - adds r0, r4, 0 - bl GetBankByIdentity - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080E0EB4 - ldr r0, _080E0EB0 @ =gObjectBankIDs - adds r0, r4, r0 - ldrb r2, [r0] - b _080E0EB6 - .align 2, 0 -_080E0EB0: .4byte gObjectBankIDs -_080E0EB4: - movs r2, 0xFF -_080E0EB6: - cmp r2, 0xFF - beq _080E0ED2 - ldr r1, _080E0EE0 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - ldr r1, _080E0EE4 @ =gBattleAnimArgs - ldrb r1, [r1, 0x2] - bl sub_8079108 -_080E0ED2: - adds r0, r5, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E0EE0: .4byte gSprites -_080E0EE4: .4byte gBattleAnimArgs - thumb_func_end sub_80E0E24 - - thumb_func_start sub_80E0EE8 -sub_80E0EE8: @ 80E0EE8 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080E0F14 @ =gAnimMoveTurn - ldrb r0, [r2] - cmp r0, 0x1 - bhi _080E0EFC - ldr r1, _080E0F18 @ =gBattleAnimArgs - movs r0, 0 - strh r0, [r1, 0xE] -_080E0EFC: - ldrb r0, [r2] - cmp r0, 0x2 - bne _080E0F08 - ldr r1, _080E0F18 @ =gBattleAnimArgs - movs r0, 0x1 - strh r0, [r1, 0xE] -_080E0F08: - adds r0, r3, 0 - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080E0F14: .4byte gAnimMoveTurn -_080E0F18: .4byte gBattleAnimArgs - thumb_func_end sub_80E0EE8 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/fight.s b/asm/fight.s deleted file mode 100644 index e8e3299af..000000000 --- a/asm/fight.s +++ /dev/null @@ -1,1749 +0,0 @@ - .include "constants/gba_constants.inc" - .include "include/macros.inc" - - .syntax unified - - .text - - @ fight - - thumb_func_start unc_080B08A0 -unc_080B08A0: @ 80D8FF0 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D9020 @ =gBattleAnimArgs - movs r0, 0 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_807867C - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0xF - strh r0, [r4, 0x2E] - ldr r0, _080D9024 @ =sub_80782D8 - str r0, [r4, 0x1C] - ldr r1, _080D9028 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9020: .4byte gBattleAnimArgs -_080D9024: .4byte sub_80782D8 -_080D9028: .4byte DestroyAnimSprite - thumb_func_end unc_080B08A0 - - thumb_func_start sub_80D902C -sub_80D902C: @ 80D902C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080D9070 @ =gBattleAnimArgs - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080D9054 - ldr r0, _080D9074 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080D9054 - ldrh r0, [r4, 0x2] - negs r0, r0 - strh r0, [r4, 0x2] - ldrh r0, [r4, 0x6] - negs r0, r0 - strh r0, [r4, 0x6] -_080D9054: - ldr r4, _080D9070 @ =gBattleAnimArgs - ldrb r1, [r4, 0xC] - adds r0, r5, 0 - bl StartSpriteAnim - movs r0, 0 - strh r0, [r4, 0xC] - adds r0, r5, 0 - bl sub_8079534 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9070: .4byte gBattleAnimArgs -_080D9074: .4byte gAnimBankAttacker - thumb_func_end sub_80D902C - - thumb_func_start sub_80D9078 -sub_80D9078: @ 80D9078 - push {r4,lr} - adds r4, r0, 0 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080D9094 - ldr r0, _080D90A0 @ =gBattleAnimArgs - ldrh r1, [r0, 0x2] - negs r1, r1 - strh r1, [r0, 0x2] - ldrh r1, [r0, 0x6] - negs r1, r1 - strh r1, [r0, 0x6] -_080D9094: - adds r0, r4, 0 - bl sub_80D902C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D90A0: .4byte gBattleAnimArgs - thumb_func_end sub_80D9078 - - thumb_func_start sub_80D90A4 -sub_80D90A4: @ 80D90A4 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080D90C4 @ =gBattleAnimArgs - ldrb r1, [r4, 0x8] - bl StartSpriteAnim - movs r1, 0x6 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D90C8 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80787B0 - b _080D90D0 - .align 2, 0 -_080D90C4: .4byte gBattleAnimArgs -_080D90C8: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8078764 -_080D90D0: - ldr r0, _080D90E8 @ =gBattleAnimArgs - ldrh r0, [r0, 0x4] - strh r0, [r5, 0x2E] - ldr r0, _080D90EC @ =sub_80782D8 - str r0, [r5, 0x1C] - ldr r1, _080D90F0 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D90E8: .4byte gBattleAnimArgs -_080D90EC: .4byte sub_80782D8 -_080D90F0: .4byte DestroyAnimSprite - thumb_func_end sub_80D90A4 - - thumb_func_start sub_80D90F4 -sub_80D90F4: @ 80D90F4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - ldr r0, _080D9110 @ =gBattleAnimArgs - movs r2, 0 - ldrsh r1, [r0, r2] - mov r9, r0 - cmp r1, 0 - bne _080D9118 - ldr r0, _080D9114 @ =gAnimBankAttacker - b _080D911A - .align 2, 0 -_080D9110: .4byte gBattleAnimArgs -_080D9114: .4byte gAnimBankAttacker -_080D9118: - ldr r0, _080D9260 @ =gAnimBankTarget -_080D911A: - ldrb r0, [r0] - mov r8, r0 - mov r4, r9 - movs r3, 0x4 - ldrsh r0, [r4, r3] - cmp r0, 0 - bge _080D9138 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - strh r0, [r4, 0x4] -_080D9138: - ldrb r1, [r4, 0x4] - adds r0, r5, 0 - bl StartSpriteAnim - mov r0, r8 - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - mov r0, r8 - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - mov r0, r8 - movs r1, 0x1 - bl sub_807A100 - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - lsls r1, 15 - lsrs r6, r1, 16 - mov r0, r8 - movs r1, 0 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080D9182 - adds r0, 0x3 -_080D9182: - lsls r4, r0, 14 - lsrs r4, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - lsls r1, r6, 16 - asrs r1, 16 - bl __modsi3 - lsls r0, 16 - lsrs r6, r0, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - lsls r4, 16 - asrs r4, 16 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 16 - lsrs r4, r0, 16 - bl Random - movs r7, 0x1 - adds r1, r7, 0 - ands r1, r0 - cmp r1, 0 - beq _080D91C4 - lsls r0, r6, 16 - negs r0, r0 - lsrs r6, r0, 16 -_080D91C4: - bl Random - adds r1, r7, 0 - ands r1, r0 - cmp r1, 0 - beq _080D91D6 - lsls r0, r4, 16 - negs r0, r0 - lsrs r4, r0, 16 -_080D91D6: - ldr r0, _080D9264 @ =gBanksBySide - add r0, r8 - ldrb r1, [r0] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - bne _080D91EC - lsls r0, r4, 16 - ldr r1, _080D9268 @ =0xfff00000 - adds r0, r1 - lsrs r4, r0, 16 -_080D91EC: - lsls r0, r6, 16 - asrs r0, 16 - ldrh r2, [r5, 0x20] - adds r0, r2 - strh r0, [r5, 0x20] - lsls r0, r4, 16 - asrs r0, 16 - ldrh r3, [r5, 0x22] - adds r0, r3 - strh r0, [r5, 0x22] - mov r1, r9 - ldrh r0, [r1, 0x2] - strh r0, [r5, 0x2E] - ldr r0, _080D926C @ =gBattleAnimSpriteTemplate_83DB4A8 - movs r2, 0x20 - ldrsh r1, [r5, r2] - movs r3, 0x22 - ldrsh r2, [r5, r3] - adds r3, r5, 0 - adds r3, 0x43 - ldrb r3, [r3] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x3C] - cmp r0, 0x40 - beq _080D9250 - movs r0, 0x3C - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080D9270 @ =gSprites - adds r0, r4 - movs r1, 0 - bl StartSpriteAffineAnim - movs r2, 0x3C - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _080D9274 @ =SpriteCallbackDummy - str r1, [r0] -_080D9250: - ldr r0, _080D9278 @ =sub_80D927C - str r0, [r5, 0x1C] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D9260: .4byte gAnimBankTarget -_080D9264: .4byte gBanksBySide -_080D9268: .4byte 0xfff00000 -_080D926C: .4byte gBattleAnimSpriteTemplate_83DB4A8 -_080D9270: .4byte gSprites -_080D9274: .4byte SpriteCallbackDummy -_080D9278: .4byte sub_80D927C - thumb_func_end sub_80D90F4 - - thumb_func_start sub_80D927C -sub_80D927C: @ 80D927C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _080D92C4 - movs r1, 0x3C - ldrsh r0, [r5, r1] - cmp r0, 0x40 - beq _080D92B8 - ldr r4, _080D92C0 @ =gSprites - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - movs r0, 0x3C - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite -_080D92B8: - adds r0, r5, 0 - bl DestroyAnimSprite - b _080D92C8 - .align 2, 0 -_080D92C0: .4byte gSprites -_080D92C4: - subs r0, r1, 0x1 - strh r0, [r5, 0x2E] -_080D92C8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80D927C - - thumb_func_start sub_80D92D0 -sub_80D92D0: @ 80D92D0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - movs r0, 0x1E - strh r0, [r4, 0x2E] - ldr r0, _080D92F0 @ =gBattleAnimArgs - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D92F4 - ldrh r0, [r4, 0x20] - subs r0, 0x14 - strh r0, [r4, 0x32] - b _080D9306 - .align 2, 0 -_080D92F0: .4byte gBattleAnimArgs -_080D92F4: - ldrh r0, [r4, 0x20] - adds r0, 0x14 - strh r0, [r4, 0x32] - adds r2, r4, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_080D9306: - ldrh r0, [r4, 0x22] - subs r0, 0x14 - strh r0, [r4, 0x36] - ldr r0, _080D9320 @ =sub_8078B34 - str r0, [r4, 0x1C] - ldr r1, _080D9324 @ =sub_80D9328 - adds r0, r4, 0 - bl StoreSpriteCallbackInData - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D9320: .4byte sub_8078B34 -_080D9324: .4byte sub_80D9328 - thumb_func_end sub_80D92D0 - - thumb_func_start sub_80D9328 -sub_80D9328: @ 80D9328 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x38] - adds r0, 0x1 - movs r6, 0 - strh r0, [r5, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _080D9368 - ldrh r2, [r5, 0x20] - ldrh r4, [r5, 0x24] - subs r0, r2, r4 - strh r0, [r5, 0x32] - ldrh r1, [r5, 0x22] - ldrh r3, [r5, 0x26] - subs r0, r1, r3 - strh r0, [r5, 0x36] - movs r0, 0x8 - strh r0, [r5, 0x2E] - adds r2, r4 - strh r2, [r5, 0x20] - adds r1, r3 - strh r1, [r5, 0x22] - strh r6, [r5, 0x26] - strh r6, [r5, 0x24] - ldr r0, _080D9370 @ =sub_8078B34 - str r0, [r5, 0x1C] - ldr r1, _080D9374 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData -_080D9368: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D9370: .4byte sub_8078B34 -_080D9374: .4byte DestroyAnimSprite - thumb_func_end sub_80D9328 - - thumb_func_start sub_80D9378 -sub_80D9378: @ 80D9378 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _080D93F4 @ =gAnimBankAttacker - ldrb r1, [r0] - movs r0, 0x2 - ldr r2, _080D93F8 @ =gAnimBankTarget - eors r0, r1 - ldrb r1, [r2] - cmp r0, r1 - bne _080D93A4 - ldrb r0, [r2] - bl GetBankIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080D93A4 - ldr r1, _080D93FC @ =gBattleAnimArgs - movs r2, 0 - ldrsh r0, [r1, r2] - negs r0, r0 - strh r0, [r1] -_080D93A4: - adds r0, r6, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r0, _080D93F4 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080D93C2 - ldr r1, _080D93FC @ =gBattleAnimArgs - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080D93C2: - ldr r4, _080D93FC @ =gBattleAnimArgs - ldrh r0, [r4, 0x6] - movs r5, 0 - strh r0, [r6, 0x2E] - ldrh r0, [r6, 0x20] - strh r0, [r6, 0x30] - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrh r0, [r6, 0x22] - strh r0, [r6, 0x34] - strh r0, [r6, 0x36] - adds r0, r6, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldrh r0, [r4, 0xA] - strh r0, [r6, 0x38] - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x3A] - strh r5, [r6, 0x3C] - ldr r0, _080D9400 @ =sub_80D9404 - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D93F4: .4byte gAnimBankAttacker -_080D93F8: .4byte gAnimBankTarget -_080D93FC: .4byte gBattleAnimArgs -_080D9400: .4byte sub_80D9404 - thumb_func_end sub_80D9378 - - thumb_func_start sub_80D9404 -sub_80D9404: @ 80D9404 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - bne _080D9430 - ldrh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - ldrh r2, [r4, 0x3C] - adds r0, r2 - strh r0, [r4, 0x3C] - b _080D9436 -_080D9430: - adds r0, r4, 0 - bl DestroyAnimSprite -_080D9436: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9404 - - thumb_func_start sub_80D943C -sub_80D943C: @ 80D943C - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r5, _080D9468 @ =gBattleAnimArgs - ldrb r1, [r5, 0x4] - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldr r0, _080D946C @ =sub_80782D8 - str r0, [r4, 0x1C] - ldr r1, _080D9470 @ =sub_80D9474 - adds r0, r4, 0 - bl StoreSpriteCallbackInData - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9468: .4byte gBattleAnimArgs -_080D946C: .4byte sub_80782D8 -_080D9470: .4byte sub_80D9474 - thumb_func_end sub_80D943C - - thumb_func_start sub_80D9474 -sub_80D9474: @ 80D9474 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl StartSpriteAffineAnim - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x14 - strh r0, [r4, 0x2E] - ldr r0, _080D94A0 @ =sub_80782D8 - str r0, [r4, 0x1C] - ldr r1, _080D94A4 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D94A0: .4byte sub_80782D8 -_080D94A4: .4byte DestroyAnimSprite - thumb_func_end sub_80D9474 - - thumb_func_start sub_80D94A8 -sub_80D94A8: @ 80D94A8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r0, _080D94C4 @ =gBattleAnimArgs - ldrh r0, [r0, 0x4] - strh r0, [r4, 0x2E] - ldr r0, _080D94C8 @ =sub_80D94CC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D94C4: .4byte gBattleAnimArgs -_080D94C8: .4byte sub_80D94CC - thumb_func_end sub_80D94A8 - - thumb_func_start sub_80D94CC -sub_80D94CC: @ 80D94CC - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - subs r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080D9510 - movs r0, 0x6 - strh r0, [r5, 0x2E] - ldr r4, _080D9518 @ =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080D951C @ =sub_8078B34 - str r0, [r5, 0x1C] - ldr r1, _080D9520 @ =sub_80D9524 - adds r0, r5, 0 - bl StoreSpriteCallbackInData -_080D9510: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9518: .4byte gAnimBankTarget -_080D951C: .4byte sub_8078B34 -_080D9520: .4byte sub_80D9524 - thumb_func_end sub_80D94CC - - thumb_func_start sub_80D9524 -sub_80D9524: @ 80D9524 - push {lr} - movs r1, 0xF - strh r1, [r0, 0x2E] - ldr r1, _080D9538 @ =sub_80782D8 - str r1, [r0, 0x1C] - ldr r1, _080D953C @ =DestroyAnimSprite - bl StoreSpriteCallbackInData - pop {r0} - bx r0 - .align 2, 0 -_080D9538: .4byte sub_80782D8 -_080D953C: .4byte DestroyAnimSprite - thumb_func_end sub_80D9524 - - thumb_func_start sub_80D9540 -sub_80D9540: @ 80D9540 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D956C - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078764 - ldr r1, _080D9568 @ =gBattleAnimArgs - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080D95C8 - .align 2, 0 -_080D9568: .4byte gBattleAnimArgs -_080D956C: - ldrh r0, [r4, 0x30] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x34] - cmp r0, 0x64 - ble _080D95BA - movs r0, 0x34 - ldrsh r1, [r4, r0] - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r0, 1 - lsls r0, 1 - subs r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080D95BA: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x78 - ble _080D95C8 - adds r0, r4, 0 - bl DestroyAnimSprite -_080D95C8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9540 - - thumb_func_start sub_80D95D0 -sub_80D95D0: @ 80D95D0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080D95E4 @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D95EC - ldr r4, _080D95E8 @ =gAnimBankAttacker - b _080D95EE - .align 2, 0 -_080D95E4: .4byte gBattleAnimArgs -_080D95E8: .4byte gAnimBankAttacker -_080D95EC: - ldr r4, _080D9634 @ =gAnimBankTarget -_080D95EE: - ldrb r0, [r4] - movs r1, 0 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080D9638 @ =gBattleAnimArgs - ldrh r0, [r1, 0x2] - ldrh r2, [r5, 0x20] - adds r0, r2 - movs r2, 0 - strh r0, [r5, 0x20] - ldrh r0, [r1, 0x4] - ldrh r3, [r5, 0x22] - adds r0, r3 - strh r0, [r5, 0x22] - strh r2, [r5, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x32] - strh r2, [r5, 0x34] - ldr r0, _080D963C @ =sub_80D9640 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9634: .4byte gAnimBankTarget -_080D9638: .4byte gBattleAnimArgs -_080D963C: .4byte sub_80D9640 - thumb_func_end sub_80D95D0 - - thumb_func_start sub_80D9640 -sub_80D9640: @ 80D9640 - push {lr} - adds r1, r0, 0 - movs r0, 0x2E - ldrsh r2, [r1, r0] - cmp r2, 0 - beq _080D9652 - cmp r2, 0x1 - beq _080D9676 - b _080D96B0 -_080D9652: - ldrh r0, [r1, 0x30] - subs r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080D96B0 - movs r2, 0x32 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080D966E - adds r0, r1, 0 - bl DestroyAnimSprite - b _080D96B0 -_080D966E: - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - b _080D96B0 -_080D9676: - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D969E - movs r0, 0 - strh r0, [r1, 0x30] - ldrh r0, [r1, 0x34] - adds r0, 0x1 - strh r0, [r1, 0x34] - ands r0, r2 - lsls r0, 16 - cmp r0, 0 - beq _080D969A - movs r0, 0x2 - b _080D969C -_080D969A: - ldr r0, _080D96B4 @ =0x0000fffe -_080D969C: - strh r0, [r1, 0x24] -_080D969E: - ldrh r0, [r1, 0x32] - subs r0, 0x1 - strh r0, [r1, 0x32] - lsls r0, 16 - cmp r0, 0 - bne _080D96B0 - adds r0, r1, 0 - bl DestroyAnimSprite -_080D96B0: - pop {r0} - bx r0 - .align 2, 0 -_080D96B4: .4byte 0x0000fffe - thumb_func_end sub_80D9640 - - thumb_func_start sub_80D96B8 -sub_80D96B8: @ 80D96B8 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080D96DC @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080D96E4 - ldr r4, _080D96E0 @ =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - ldrh r2, [r6, 0x4] - adds r0, r2 - b _080D96F6 - .align 2, 0 -_080D96DC: .4byte gBattleAnimArgs -_080D96E0: .4byte gAnimBankAttacker -_080D96E4: - ldr r4, _080D9740 @ =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x4] - adds r0, r1 -_080D96F6: - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - ldrh r6, [r6, 0x6] - adds r0, r6 - strh r0, [r5, 0x22] - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - ldr r3, _080D9744 @ =gBattleAnimArgs - movs r4, 0x2 - ldrsh r0, [r3, r4] - lsls r0, 4 - adds r1, r0 - ldr r4, _080D9748 @ =0x000003ff - adds r0, r4, 0 - ands r1, r0 - ldr r0, _080D974C @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - movs r1, 0 - movs r0, 0 - strh r0, [r5, 0x2E] - movs r2, 0x2 - ldrsh r0, [r3, r2] - cmp r0, 0x1 - beq _080D9764 - cmp r0, 0x1 - bgt _080D9750 - cmp r0, 0 - beq _080D975A - b _080D978A - .align 2, 0 -_080D9740: .4byte gAnimBankTarget -_080D9744: .4byte gBattleAnimArgs -_080D9748: .4byte 0x000003ff -_080D974C: .4byte 0xfffffc00 -_080D9750: - cmp r0, 0x2 - beq _080D9774 - cmp r0, 0x3 - beq _080D9784 - b _080D978A -_080D975A: - ldr r0, _080D9760 @ =0x0000fffd - b _080D9784 - .align 2, 0 -_080D9760: .4byte 0x0000fffd -_080D9764: - movs r0, 0x3 - strh r0, [r5, 0x3A] - ldr r0, _080D9770 @ =0x0000fffd - strh r0, [r5, 0x3C] - b _080D9792 - .align 2, 0 -_080D9770: .4byte 0x0000fffd -_080D9774: - ldr r0, _080D9780 @ =0x0000fffd - strh r0, [r5, 0x3A] - movs r0, 0x3 - strh r0, [r5, 0x3C] - b _080D9792 - .align 2, 0 -_080D9780: .4byte 0x0000fffd -_080D9784: - strh r0, [r5, 0x3A] - strh r0, [r5, 0x3C] - b _080D9792 -_080D978A: - adds r0, r5, 0 - bl DestroyAnimSprite - b _080D9796 -_080D9792: - ldr r0, _080D979C @ =sub_80D97A0 - str r0, [r5, 0x1C] -_080D9796: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D979C: .4byte sub_80D97A0 - thumb_func_end sub_80D96B8 - - thumb_func_start sub_80D97A0 -sub_80D97A0: @ 80D97A0 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x3A] - ldrh r2, [r1, 0x20] - adds r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r1, 0x3C] - ldrh r2, [r1, 0x22] - adds r0, r2 - strh r0, [r1, 0x22] - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - ble _080D97C8 - adds r0, r1, 0 - bl DestroyAnimSprite -_080D97C8: - pop {r0} - bx r0 - thumb_func_end sub_80D97A0 - - thumb_func_start sub_80D97CC -sub_80D97CC: @ 80D97CC - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080D9818 @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D9828 - ldr r4, _080D981C @ =gBankAttacker - ldrb r0, [r4] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r0, _080D9820 @ =gAnimBankAttacker - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - ldr r0, _080D9824 @ =gAnimBankTarget - b _080D9844 - .align 2, 0 -_080D9818: .4byte gBattleAnimArgs -_080D981C: .4byte gBankAttacker -_080D9820: .4byte gAnimBankAttacker -_080D9824: .4byte gAnimBankTarget -_080D9828: - ldr r0, _080D9860 @ =gAnimBankTarget - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - ldr r0, _080D9864 @ =gAnimBankAttacker -_080D9844: - ldrb r0, [r0] - strh r0, [r5, 0x3C] - movs r0, 0 - strh r0, [r5, 0x2E] - movs r0, 0xC - strh r0, [r5, 0x30] - movs r0, 0x8 - strh r0, [r5, 0x32] - ldr r0, _080D9868 @ =sub_80D986C - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9860: .4byte gAnimBankTarget -_080D9864: .4byte gAnimBankAttacker -_080D9868: .4byte sub_80D986C - thumb_func_end sub_80D97CC - - thumb_func_start sub_80D986C -sub_80D986C: @ 80D986C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB4 - bne _080D98C6 - ldr r1, _080D98CC @ =REG_BLDCNT - movs r0, 0 - strh r0, [r1] - movs r0, 0x10 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x3C] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, _080D98D0 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData - ldr r0, _080D98D4 @ =sub_8078BB8 - str r0, [r4, 0x1C] -_080D98C6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D98CC: .4byte REG_BLDCNT -_080D98D0: .4byte move_anim_8074EE0 -_080D98D4: .4byte sub_8078BB8 - thumb_func_end sub_80D986C - - thumb_func_start sub_80D98D8 -sub_80D98D8: @ 80D98D8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080D9924 @ =gBattleAnimArgs - ldrh r0, [r4] - strh r0, [r5, 0x20] - movs r2, 0x78 - strh r2, [r5, 0x22] - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x2E] - adds r0, r5, 0 - adds r0, 0x36 - adds r1, r5, 0 - adds r1, 0x38 - lsls r2, 8 - bl sub_8079BF4 - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x3A] - ldrh r2, [r5, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - movs r3, 0x4 - ldrsh r0, [r4, r3] - lsls r0, 2 - adds r1, r0 - ldr r3, _080D9928 @ =0x000003ff - adds r0, r3, 0 - ands r1, r0 - ldr r0, _080D992C @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldr r0, _080D9930 @ =sub_80D9934 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9924: .4byte gBattleAnimArgs -_080D9928: .4byte 0x000003ff -_080D992C: .4byte 0xfffffc00 -_080D9930: .4byte sub_80D9934 - thumb_func_end sub_80D98D8 - - thumb_func_start sub_80D9934 -sub_80D9934: @ 80D9934 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - movs r1, 0x2E - ldrsh r0, [r7, r1] - cmp r0, 0 - beq _080D9986 - movs r2, 0x36 - ldrsh r0, [r7, r2] - movs r2, 0x38 - ldrsh r1, [r7, r2] - bl sub_8079BFC - adds r4, r0, 0 - movs r1, 0x3A - ldrsh r0, [r7, r1] - subs r4, r0 - adds r0, r7, 0 - adds r0, 0x36 - adds r1, r7, 0 - adds r1, 0x38 - adds r2, r4, 0 - bl sub_8079BF4 - asrs r4, 8 - strh r4, [r7, 0x22] - lsls r4, 16 - asrs r4, 16 - movs r0, 0x8 - negs r0, r0 - cmp r4, r0 - bge _080D997E - adds r0, r7, 0 - bl DestroyAnimSprite - b _080D99DC -_080D997E: - ldrh r0, [r7, 0x2E] - subs r0, 0x1 - strh r0, [r7, 0x2E] - b _080D99DC -_080D9986: - ldr r4, _080D99E8 @ =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0x2 - bl GetBankPosition - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldrb r0, [r4] - movs r1, 0x3 - bl GetBankPosition - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r2, _080D99EC @ =gAnimBankTarget - mov r8, r2 - ldrb r0, [r2] - movs r1, 0x2 - bl GetBankPosition - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - subs r4, r6 - strh r4, [r7, 0x2E] - lsrs r0, 24 - subs r0, r5 - strh r0, [r7, 0x30] - ldrh r0, [r7, 0x20] - lsls r0, 4 - strh r0, [r7, 0x32] - ldrh r0, [r7, 0x22] - lsls r0, 4 - strh r0, [r7, 0x34] - ldr r0, _080D99F0 @ =sub_80D99F4 - str r0, [r7, 0x1C] -_080D99DC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D99E8: .4byte gAnimBankAttacker -_080D99EC: .4byte gAnimBankTarget -_080D99F0: .4byte sub_80D99F4 - thumb_func_end sub_80D9934 - - thumb_func_start sub_80D99F4 -sub_80D99F4: @ 80D99F4 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - ldrh r1, [r2, 0x30] - ldrh r3, [r2, 0x34] - adds r1, r3 - strh r1, [r2, 0x34] - lsls r0, 16 - asrs r0, 20 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r3, r1, 20 - strh r3, [r2, 0x22] - adds r0, 0x8 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 17 - cmp r0, r1 - bhi _080D9A2E - adds r1, r3, 0 - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - blt _080D9A2E - cmp r1, 0x78 - ble _080D9A34 -_080D9A2E: - adds r0, r2, 0 - bl DestroyAnimSprite -_080D9A34: - pop {r0} - bx r0 - thumb_func_end sub_80D99F4 - - thumb_func_start sub_80D9A38 -sub_80D9A38: @ 80D9A38 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080D9A6C @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D9A7C - ldr r4, _080D9A70 @ =gBankAttacker - ldrb r0, [r4] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r0, _080D9A74 @ =gAnimBankTarget - ldrb r4, [r0] - ldr r0, _080D9A78 @ =gAnimBankAttacker - b _080D9A82 - .align 2, 0 -_080D9A6C: .4byte gBattleAnimArgs -_080D9A70: .4byte gBankAttacker -_080D9A74: .4byte gAnimBankTarget -_080D9A78: .4byte gAnimBankAttacker -_080D9A7C: - ldr r0, _080D9AB4 @ =gAnimBankAttacker - ldrb r4, [r0] - ldr r0, _080D9AB8 @ =gAnimBankTarget -_080D9A82: - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080D9ABC - ldrb r2, [r5, 0x3] - lsls r1, r2, 26 - lsrs r1, 27 - movs r0, 0x8 - orrs r1, r0 - lsls r1, 1 - subs r0, 0x47 - b _080D9AD6 - .align 2, 0 -_080D9AB4: .4byte gAnimBankAttacker -_080D9AB8: .4byte gAnimBankTarget -_080D9ABC: - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080D9ADC - ldrb r2, [r5, 0x3] - lsls r1, r2, 26 - lsrs r1, 27 - movs r0, 0x18 - orrs r1, r0 - lsls r1, 1 - subs r0, 0x57 -_080D9AD6: - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x3] -_080D9ADC: - movs r0, 0x10 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - adds r0, r4, 0 - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - adds r0, r4, 0 - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 - ldr r1, _080D9B1C @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData - ldr r0, _080D9B20 @ =sub_8078BB8 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9B1C: .4byte DestroyAnimSprite -_080D9B20: .4byte sub_8078BB8 - thumb_func_end sub_80D9A38 - - thumb_func_start sub_80D9B24 -sub_80D9B24: @ 80D9B24 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r1, [r4, r0] - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080D9B3A - adds r0, r4, 0 - bl DestroyAnimSprite -_080D9B3A: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9B24 - - thumb_func_start sub_80D9B48 -sub_80D9B48: @ 80D9B48 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _080D9BC4 @ =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r1, _080D9BC8 @ =gBattleAnimArgs - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1] - strh r0, [r5, 0x32] - ldrh r0, [r1, 0x2] - strh r0, [r5, 0x34] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x36] - ldr r0, _080D9BCC @ =gAnimMoveTurn - ldrb r6, [r0] - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080D9B92 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_080D9B92: - movs r0, 0x1 - ands r6, r0 - cmp r6, 0 - beq _080D9BA6 - ldrh r0, [r5, 0x32] - negs r0, r0 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] -_080D9BA6: - ldrh r1, [r5, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim - ldrh r0, [r5, 0x32] - strh r0, [r5, 0x24] - ldrh r0, [r5, 0x34] - strh r0, [r5, 0x26] - ldr r0, _080D9BD0 @ =sub_80D9B24 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D9BC4: .4byte gAnimBankTarget -_080D9BC8: .4byte gBattleAnimArgs -_080D9BCC: .4byte gAnimMoveTurn -_080D9BD0: .4byte sub_80D9B24 - thumb_func_end sub_80D9B48 - - thumb_func_start sub_80D9BD4 -sub_80D9BD4: @ 80D9BD4 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D9BEC @ =gBattleAnimArgs - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080D9BF0 - adds r0, r4, 0 - movs r1, 0 - bl sub_80787B0 - b _080D9BF8 - .align 2, 0 -_080D9BEC: .4byte gBattleAnimArgs -_080D9BF0: - adds r0, r4, 0 - movs r1, 0 - bl sub_8078764 -_080D9BF8: - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080D9C0C - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - b _080D9C22 -_080D9C0C: - ldr r0, _080D9C34 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080D9C22 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080D9C22: - ldr r0, _080D9C38 @ =sub_8078600 - str r0, [r4, 0x1C] - ldr r1, _080D9C3C @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D9C34: .4byte gAnimBankAttacker -_080D9C38: .4byte sub_8078600 -_080D9C3C: .4byte DestroyAnimSprite - thumb_func_end sub_80D9BD4 - - thumb_func_start sub_80D9C40 -sub_80D9C40: @ 80D9C40 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080D9C7A - ldrh r0, [r4, 0x30] - adds r0, 0x28 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x2 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - ble _080D9C7A - adds r0, r4, 0 - bl DestroyAnimSprite -_080D9C7A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9C40 - - thumb_func_start sub_80D9C80 -sub_80D9C80: @ 80D9C80 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _080D9CB0 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080D9CB8 - cmp r0, 0x1 - bgt _080D9CD2 - cmp r0, 0 - bne _080D9CD2 - movs r0, 0 - bl sub_80789D4 - ldr r0, _080D9CB4 @ =gBattleAnimArgs - ldrh r0, [r0] - strh r0, [r4, 0x18] - b _080D9CCA - .align 2, 0 -_080D9CB0: .4byte gTasks -_080D9CB4: .4byte gBattleAnimArgs -_080D9CB8: - ldrh r0, [r4, 0x18] - subs r0, 0x1 - strh r0, [r4, 0x18] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080D9CDE -_080D9CCA: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080D9CDE -_080D9CD2: - movs r2, 0xA0 - lsls r2, 3 - adds r0, r2, 0 - ldrh r1, [r4, 0x1A] - adds r0, r1 - strh r0, [r4, 0x1A] -_080D9CDE: - movs r2, 0xB0 - lsls r2, 4 - adds r0, r2, 0 - ldrh r1, [r4, 0x1C] - adds r0, r1 - strh r0, [r4, 0x1C] - ldr r0, _080D9D0C @ =gAnimBankTarget - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080D9D14 - ldr r1, _080D9D10 @ =gBattle_BG3_X - ldrh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 24 - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - adds r7, r1, 0 - b _080D9D24 - .align 2, 0 -_080D9D0C: .4byte gAnimBankTarget -_080D9D10: .4byte gBattle_BG3_X -_080D9D14: - ldr r2, _080D9D64 @ =gBattle_BG3_X - ldrh r1, [r4, 0x1A] - lsls r1, 16 - asrs r1, 24 - ldrh r0, [r2] - subs r0, r1 - strh r0, [r2] - adds r7, r2, 0 -_080D9D24: - ldr r3, _080D9D68 @ =gBattle_BG3_Y - ldrh r2, [r4, 0x1C] - lsls r0, r2, 16 - asrs r0, 24 - ldrh r1, [r3] - adds r0, r1 - strh r0, [r3] - movs r0, 0xFF - ldrb r1, [r4, 0x1A] - movs r5, 0 - strh r1, [r4, 0x1A] - ands r0, r2 - strh r0, [r4, 0x1C] - ldr r0, _080D9D6C @ =gBattleAnimArgs - movs r2, 0xE - ldrsh r1, [r0, r2] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080D9D5C - strh r5, [r7] - strh r5, [r3] - movs r0, 0x1 - bl sub_80789D4 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080D9D5C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D9D64: .4byte gBattle_BG3_X -_080D9D68: .4byte gBattle_BG3_Y -_080D9D6C: .4byte gBattleAnimArgs - thumb_func_end sub_80D9C80 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/flying.s b/asm/flying.s index ce3fb050b..1862e3218 100644 --- a/asm/flying.s +++ b/asm/flying.s @@ -174,7 +174,7 @@ sub_80DA16C: @ 80DA16C push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r0, _080DA1D8 @ =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide @@ -211,7 +211,7 @@ _080DA18C: adds r0, r4 strh r0, [r6, 0x36] adds r0, r6, 0 - bl obj_translate_based_on_private_1_2_3_4 + bl InitAnimSpriteTranslationDeltas ldr r0, _080DA1E4 @ =sub_80785E4 str r0, [r6, 0x1C] ldr r1, _080DA1E8 @ =sub_80DA1EC @@ -232,7 +232,7 @@ _080DA1E8: .4byte sub_80DA1EC sub_80DA1EC: @ 80DA1EC push {r4,lr} adds r4, r0, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas lsls r0, 24 cmp r0, 0 beq _080DA200 @@ -331,7 +331,7 @@ _080DA2B0: adds r3, r5, 0 adds r3, 0x36 movs r1, 0x1 - bl sub_807A3FC + bl SetAverageBattlerPositions _080DA2C2: ldr r4, _080DA2F4 @ =gBattleAnimArgs ldrh r0, [r4, 0x4] @@ -342,7 +342,7 @@ _080DA2C2: ldrh r3, [r5, 0x36] adds r0, r3 strh r0, [r5, 0x36] - ldr r0, _080DA2F8 @ =sub_8078B34 + ldr r0, _080DA2F8 @ =StartTranslateAnimSpriteByDeltas str r0, [r5, 0x1C] ldr r1, _080DA2FC @ =DestroyAnimSprite adds r0, r5, 0 @@ -356,7 +356,7 @@ _080DA2C2: .align 2, 0 _080DA2F0: .4byte gAnimBankTarget _080DA2F4: .4byte gBattleAnimArgs -_080DA2F8: .4byte sub_8078B34 +_080DA2F8: .4byte StartTranslateAnimSpriteByDeltas _080DA2FC: .4byte DestroyAnimSprite thumb_func_end sub_80DA208 @@ -365,7 +365,7 @@ sub_80DA300: @ 80DA300 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r1, _080DA33C @ =gBattleAnimArgs ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] @@ -483,7 +483,7 @@ _080DA3C2: lsrs r0, 24 strh r0, [r5, 0x36] adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 + bl InitAnimSpriteTranslationDeltas ldr r0, _080DA40C @ =sub_80DA410 str r0, [r5, 0x1C] pop {r4,r5} @@ -503,7 +503,7 @@ sub_80DA410: @ 80DA410 movs r0, 0x1 strh r0, [r4, 0x2E] adds r0, r4, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas ldrh r1, [r4, 0x34] lsrs r0, r1, 8 cmp r0, 0xC8 @@ -1743,7 +1743,7 @@ sub_80DAD30: @ 80DAD30 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] - ldr r0, _080DAD80 @ =sub_807941C + ldr r0, _080DAD80 @ =TranslateAnimSpriteToTargetMonLocation str r0, [r4, 0x1C] pop {r4,r5} pop {r0} @@ -1751,7 +1751,7 @@ sub_80DAD30: @ 80DAD30 .align 2, 0 _080DAD78: .4byte gAnimBankTarget _080DAD7C: .4byte gAnimBankAttacker -_080DAD80: .4byte sub_807941C +_080DAD80: .4byte TranslateAnimSpriteToTargetMonLocation thumb_func_end sub_80DAD30 thumb_func_start sub_80DAD84 @@ -2086,7 +2086,7 @@ sub_80DB000: @ 80DB000 bne _080DB01C adds r0, r5, 0 movs r1, 0 - bl sub_80787B0 + bl InitAnimSpritePos b _080DB024 .align 2, 0 _080DB018: .4byte gBattleAnimArgs @@ -2291,7 +2291,7 @@ sub_80DB194: @ 80DB194 _080DB1A6: adds r0, r4, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos movs r0, 0 bl GetAnimBankSpriteId ldr r2, _080DB1D4 @ =gSprites @@ -2414,7 +2414,7 @@ sub_80DB288: @ 80DB288 push {r4,lr} adds r4, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r1, _080DB2C4 @ =gBattleAnimArgs ldrh r0, [r1, 0x4] strh r0, [r4, 0x2E] @@ -2934,7 +2934,7 @@ sub_80DB5E4: @ 80DB5E4 asrs r5, 16 adds r0, r4, 0 adds r1, r5, 0 - bl sub_80790F0 + bl ArcTan2Neg lsls r0, 16 movs r1, 0xC0 lsls r1, 24 diff --git a/asm/ghost.s b/asm/ghost.s index 2934f6dbd..b5620910b 100644 --- a/asm/ghost.s +++ b/asm/ghost.s @@ -12,7 +12,7 @@ sub_80DDB6C: @ 80DDB6C push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r0, _080DDBC8 @ =gBattleAnimArgs ldrh r0, [r0, 0x4] strh r0, [r4, 0x2E] @@ -63,7 +63,7 @@ sub_80DDBD8: @ 80DDBD8 adds r4, r0, 0 bl sub_80DDCC8 adds r0, r4, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas lsls r0, 24 cmp r0, 0 beq _080DDBF8 @@ -123,7 +123,7 @@ sub_80DDC4C: @ 80DDC4C movs r0, 0x1 strh r0, [r4, 0x2E] adds r0, r4, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas movs r1, 0x38 ldrsh r0, [r4, r1] movs r1, 0xA @@ -2539,7 +2539,7 @@ sub_80DEF3C: @ 80DEF3C push {r4,lr} adds r4, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r0, _080DEF68 @ =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide @@ -2627,7 +2627,7 @@ _080DEFAA: bne _080DF00C movs r0, 0x1E strh r0, [r3, 0x2E] - ldr r0, _080DF004 @ =sub_80782D8 + ldr r0, _080DF004 @ =WaitAnimForDuration str r0, [r3, 0x1C] ldr r1, _080DF008 @ =sub_80DF018 adds r0, r3, 0 @@ -2636,7 +2636,7 @@ _080DEFAA: .align 2, 0 _080DEFFC: .4byte 0x000003ff _080DF000: .4byte 0xfffffc00 -_080DF004: .4byte sub_80782D8 +_080DF004: .4byte WaitAnimForDuration _080DF008: .4byte sub_80DF018 _080DF00C: movs r0, 0x28 @@ -3257,7 +3257,7 @@ sub_80DF49C: @ 80DF49C movs r2, 0x4 orrs r1, r2 strb r1, [r3] - ldr r2, _080DF4E0 @ =gObjectBankIDs + ldr r2, _080DF4E0 @ =gBankSpriteIds ldr r1, _080DF4E4 @ =gAnimBankAttacker ldrb r1, [r1] adds r1, r2 @@ -3286,7 +3286,7 @@ sub_80DF49C: @ 80DF49C strh r1, [r0, 0x22] bx lr .align 2, 0 -_080DF4E0: .4byte gObjectBankIDs +_080DF4E0: .4byte gBankSpriteIds _080DF4E4: .4byte gAnimBankAttacker _080DF4E8: .4byte gBattleAnimArgs _080DF4EC: .4byte sub_80DF4F4 diff --git a/asm/ground.s b/asm/ground.s index 3d4b69a9f..ac3f909b5 100644 --- a/asm/ground.s +++ b/asm/ground.s @@ -42,7 +42,7 @@ sub_80E0F1C: @ 80E0F1C ldr r0, _080E0F7C @ =0x0000ffd8 strh r0, [r4, 0x38] adds r0, r4, 0 - bl sub_80786EC + bl InitAnimSpriteTranslationOverDuration ldr r0, _080E0F80 @ =sub_80E0F84 str r0, [r4, 0x1C] pop {r4,r5} @@ -59,7 +59,7 @@ _080E0F80: .4byte sub_80E0F84 sub_80E0F84: @ 80E0F84 push {r4,r5,lr} adds r5, r0, 0 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _080E0FD8 @@ -92,7 +92,7 @@ sub_80E0F84: @ 80E0F84 movs r0, 0x28 strh r0, [r5, 0x38] adds r0, r5, 0 - bl sub_80786EC + bl InitAnimSpriteTranslationOverDuration ldr r0, _080E0FE4 @ =sub_80E0FE8 str r0, [r5, 0x1C] _080E0FD8: @@ -108,7 +108,7 @@ _080E0FE4: .4byte sub_80E0FE8 sub_80E0FE8: @ 80E0FE8 push {r4,lr} adds r4, r0, 0 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _080E0FFC @@ -157,7 +157,7 @@ _080E1024: ldrh r4, [r4, 0x6] adds r0, r4 strh r0, [r6, 0x36] - ldr r0, _080E1070 @ =sub_8078B34 + ldr r0, _080E1070 @ =StartTranslateAnimSpriteByDeltas str r0, [r6, 0x1C] ldr r1, _080E1074 @ =DestroyAnimSprite adds r0, r6, 0 @@ -169,7 +169,7 @@ _080E1024: _080E1064: .4byte gAnimBankAttacker _080E1068: .4byte gBattleAnimArgs _080E106C: .4byte gAnimBankTarget -_080E1070: .4byte sub_8078B34 +_080E1070: .4byte StartTranslateAnimSpriteByDeltas _080E1074: .4byte DestroyAnimSprite thumb_func_end sub_80E1004 @@ -180,7 +180,7 @@ sub_80E1078: @ 80E1078 push {r7} adds r6, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r4, _080E10F8 @ =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 @@ -224,7 +224,7 @@ _080E10D0: strh r0, [r6, 0x32] adds r0, r7, r4 strh r0, [r6, 0x36] - ldr r0, _080E1100 @ =sub_8078B34 + ldr r0, _080E1100 @ =StartTranslateAnimSpriteByDeltas str r0, [r6, 0x1C] ldr r1, _080E1104 @ =move_anim_8074EE0 adds r0, r6, 0 @@ -237,7 +237,7 @@ _080E10D0: .align 2, 0 _080E10F8: .4byte gAnimBankTarget _080E10FC: .4byte gBattleAnimArgs -_080E1100: .4byte sub_8078B34 +_080E1100: .4byte StartTranslateAnimSpriteByDeltas _080E1104: .4byte move_anim_8074EE0 thumb_func_end sub_80E1078 @@ -1105,7 +1105,7 @@ _080E1762: ldrh r0, [r7, 0x8] strh r0, [r5, 0x38] adds r0, r5, 0 - bl sub_80786EC + bl InitAnimSpriteTranslationOverDuration ldr r0, _080E17AC @ =sub_80E17B0 str r0, [r5, 0x1C] pop {r4-r7} @@ -1120,7 +1120,7 @@ _080E17AC: .4byte sub_80E17B0 sub_80E17B0: @ 80E17B0 push {r4,lr} adds r4, r0, 0 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _080E17C4 @@ -1188,7 +1188,7 @@ _080E17EA: bl StoreSpriteCallbackInData ldrh r0, [r4, 0x4] strh r0, [r6, 0x2E] - ldr r0, _080E1860 @ =sub_80782D8 + ldr r0, _080E1860 @ =WaitAnimForDuration str r0, [r6, 0x1C] pop {r4-r6} pop {r0} @@ -1200,7 +1200,7 @@ _080E1850: .4byte gBattleAnimArgs _080E1854: .4byte 0x000003ff _080E1858: .4byte 0xfffffc00 _080E185C: .4byte DestroyAnimSprite -_080E1860: .4byte sub_80782D8 +_080E1860: .4byte WaitAnimForDuration thumb_func_end sub_80E17CC thumb_func_start sub_80E1864 @@ -1270,7 +1270,7 @@ _080E18CE: adds r1, r4, 0 adds r1, 0x8 adds r1, r0 - ldr r0, _080E1904 @ =gObjectBankIDs + ldr r0, _080E1904 @ =gBankSpriteIds adds r0, r5, r0 ldrb r0, [r0] strh r0, [r1] @@ -1285,7 +1285,7 @@ _080E18F8: bls _080E18CE b _080E1924 .align 2, 0 -_080E1904: .4byte gObjectBankIDs +_080E1904: .4byte gBankSpriteIds _080E1908: ldrb r0, [r6] bl GetAnimBankSpriteId @@ -325,7 +325,7 @@ sub_80D792C: @ 80D792C push {r4,lr} adds r4, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r0, _080D7960 @ =gAnimBankTarget ldrb r0, [r0] movs r1, 0x2 @@ -371,7 +371,7 @@ _080D7976: ldr r1, _080D79AC @ =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData - ldr r0, _080D79B0 @ =sub_8078B34 + ldr r0, _080D79B0 @ =StartTranslateAnimSpriteByDeltas str r0, [r4, 0x1C] pop {r4} pop {r0} @@ -380,7 +380,7 @@ _080D7976: _080D79A4: .4byte gBattleAnimArgs _080D79A8: .4byte gAnimBankTarget _080D79AC: .4byte DestroyAnimSprite -_080D79B0: .4byte sub_8078B34 +_080D79B0: .4byte StartTranslateAnimSpriteByDeltas thumb_func_end sub_80D792C thumb_func_start sub_80D79B4 @@ -406,7 +406,7 @@ _080D79D0: adds r3, r4, 0 adds r3, 0x22 movs r1, 0x1 - bl sub_807A3FC + bl SetAverageBattlerPositions ldr r0, _080D7A1C @ =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide @@ -480,7 +480,7 @@ sub_80D7A64: @ 80D7A64 sub sp, 0x10 adds r5, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r6, _080D7AAC @ =gBattleAnimArgs ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] @@ -519,7 +519,7 @@ _080D7AB4: adds r3, r5, 0 adds r3, 0x36 movs r1, 0x1 - bl sub_807A3FC + bl SetAverageBattlerPositions _080D7AC6: ldr r0, _080D7AE4 @ =gAnimBankAttacker ldrb r0, [r0] @@ -795,7 +795,7 @@ sub_80D7CD4: @ 80D7CD4 sub sp, 0x10 adds r5, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r1, _080D7D18 @ =gBattleAnimArgs ldrh r0, [r1, 0x8] strh r0, [r5, 0x2E] @@ -832,7 +832,7 @@ _080D7D20: adds r3, r5, 0 adds r3, 0x36 movs r1, 0x1 - bl sub_807A3FC + bl SetAverageBattlerPositions _080D7D32: ldr r0, _080D7D54 @ =gAnimBankAttacker ldrb r0, [r0] @@ -1036,7 +1036,7 @@ _080D7EAC: adds r3, r4, 0 adds r3, 0x22 movs r1, 0 - bl sub_807A3FC + bl SetAverageBattlerPositions ldr r0, _080D7EF0 @ =gAnimBankAttacker ldrb r0, [r0] bl GetBankSide @@ -1094,7 +1094,7 @@ sub_80D7F10: @ 80D7F10 bne _080D7F34 adds r0, r5, 0 movs r1, 0 - bl sub_80787B0 + bl InitAnimSpritePos b _080D7F72 .align 2, 0 _080D7F30: .4byte gBattleAnimArgs @@ -1106,7 +1106,7 @@ _080D7F34: adds r3, r5, 0 adds r3, 0x22 movs r1, 0 - bl sub_807A3FC + bl SetAverageBattlerPositions ldrb r0, [r4] bl GetBankSide lsls r0, 24 @@ -1152,7 +1152,7 @@ _080D7F92: adds r3, r5, 0 adds r3, 0x22 movs r1, 0 - bl sub_807A3FC + bl SetAverageBattlerPositions ldrb r0, [r4] bl GetBankSide lsls r0, 24 @@ -1221,7 +1221,7 @@ _080D800C: adds r0, r1 strh r0, [r5, 0x36] adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 + bl InitAnimSpriteTranslationDeltas movs r0, 0x40 strh r0, [r5, 0x38] ldr r1, _080D8044 @ =sub_80D8048 @@ -1241,7 +1241,7 @@ _080D8044: .4byte sub_80D8048 sub_80D8048: @ 80D8048 push {r4,lr} adds r4, r0, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas lsls r0, 24 cmp r0, 0 bne _080D80D2 @@ -1696,14 +1696,14 @@ sub_80D83E0: @ 80D83E0 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] - ldr r0, _080D8410 @ =sub_807941C + ldr r0, _080D8410 @ =TranslateAnimSpriteToTargetMonLocation str r0, [r4, 0x1C] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080D840C: .4byte gAnimBankAttacker -_080D8410: .4byte sub_807941C +_080D8410: .4byte TranslateAnimSpriteToTargetMonLocation thumb_func_end sub_80D83E0 thumb_func_start sub_80D8414 @@ -2227,7 +2227,7 @@ _080D8824: strb r0, [r1] _080D8858: adds r0, r5, 0 - bl obj_translate_based_on_private_1_2_3_4 + bl InitAnimSpriteTranslationDeltas ldr r0, _080D8870 @ =sub_80D8874 str r0, [r5, 0x1C] pop {r3} @@ -2263,7 +2263,7 @@ _080D8894: b _080D8AD0 _080D8896: adds r0, r4, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas ldr r1, _080D88C0 @ =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] @@ -2361,13 +2361,13 @@ _080D893A: ands r0, r1 strh r0, [r4, 0x38] adds r0, r4, 0 - bl obj_translate_based_on_private_1_2_3_4 + bl InitAnimSpriteTranslationDeltas b _080D8AD0 .align 2, 0 _080D8964: .4byte gSineTable _080D8968: adds r0, r4, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas ldr r1, _080D89C8 @ =gSineTable movs r2, 0x38 ldrsh r0, [r4, r2] @@ -2519,7 +2519,7 @@ _080D8A7A: _080D8A90: .4byte 0x0000fff0 _080D8A94: adds r0, r4, 0 - bl sub_8078B5C + bl TranslateAnimSpriteByDeltas lsls r0, 24 cmp r0, 0 beq _080D8AD0 @@ -3026,7 +3026,7 @@ _080D8E6A: bl StartSpriteAffineAnim adds r0, r5, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r6, _080D8ED0 @ =gBattleAnimArgs ldrh r0, [r6, 0x8] strh r0, [r5, 0x2E] @@ -3060,7 +3060,7 @@ _080D8E92: ldrh r0, [r6, 0xA] strh r0, [r5, 0x38] adds r0, r5, 0 - bl sub_80786EC + bl InitAnimSpriteTranslationOverDuration ldr r0, _080D8EDC @ =sub_80D8EE0 str r0, [r5, 0x1C] pop {r4-r6} @@ -3078,7 +3078,7 @@ _080D8EDC: .4byte sub_80D8EE0 sub_80D8EE0: @ 80D8EE0 push {r4,lr} adds r4, r0, 0 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _080D8F02 diff --git a/asm/nakamura_debug_menu.s b/asm/nakamura_debug_menu.s new file mode 100644 index 000000000..21092fe4b --- /dev/null +++ b/asm/nakamura_debug_menu.s @@ -0,0 +1,4686 @@ +.if DEBUG + + .include "constants/gba_constants.inc" + .include "include/macros.inc" + + .text + + thumb_func_start debug_sub_815F1B8 +debug_sub_815F1B8: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0xe + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._1 @ _843E3DC + mov r0, #0x10 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0xe + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0xf + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + add sp, sp, #0x8 + pop {r0} + bx r0 +._2: + .align 2, 0 +._1: + .word _843E3DC + + thumb_func_end debug_sub_815F1B8 + + thumb_func_start InitNakamuraDebugMenu +InitNakamuraDebugMenu: + push {lr} + bl debug_sub_815F1B8 + ldr r1, ._3 @ gMenuCallback + ldr r0, ._3 + 4 @ debug_sub_815F214 + str r0, [r1] + mov r0, #0x0 + pop {r1} + bx r1 +._4: + .align 2, 0 +._3: + .word gMenuCallback + .word debug_sub_815F214+1 + + thumb_func_end InitNakamuraDebugMenu + + thumb_func_start debug_sub_815F214 +debug_sub_815F214: + push {r4, lr} + ldr r4, ._9 @ gMain + ldrh r1, [r4, #0x2e] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._5 @cond_branch + mov r0, #0x1 + neg r0, r0 + bl Menu_MoveCursor +._5: + ldrh r1, [r4, #0x2e] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._6 @cond_branch + mov r0, #0x1 + bl Menu_MoveCursor +._6: + ldrh r1, [r4, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._7 @cond_branch + ldr r4, ._9 + 4 @ _843E3DC + bl Menu_GetCursorPos + lsl r0, r0, #0x18 + lsr r0, r0, #0x15 + add r4, r4, #0x4 + add r0, r0, r4 + ldr r4, [r0] + bl Menu_DestroyCursor + bl _call_via_r4 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + b ._12 +._10: + .align 2, 0 +._9: + .word gMain + .word _843E3DC +._7: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + bne ._11 @cond_branch + mov r0, #0x0 + b ._12 +._11: + bl CloseMenu + mov r0, #0x1 +._12: + pop {r4} + pop {r1} + bx r1 + + thumb_func_end debug_sub_815F214 + + thumb_func_start debug_sub_815F284 +debug_sub_815F284: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, ._14 @ gPaletteFade + ldrb r1, [r0, #0x7] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + bne ._13 @cond_branch + bl debug_sub_81381B4 + mov r0, #0x5 + mov r1, #0x0 + bl OpenPartyMenu + add r0, r4, #0 + bl DestroyTask +._13: + pop {r4} + pop {r0} + bx r0 +._15: + .align 2, 0 +._14: + .word gPaletteFade + + thumb_func_end debug_sub_815F284 + + thumb_func_start debug_sub_815F2B4 +debug_sub_815F2B4: + push {lr} + add sp, sp, #0xfffffffc + bl CloseMenu + bl Menu_EraseScreen + ldr r1, ._16 @ gMain + ldr r0, ._16 + 4 @ sub_805469C + str r0, [r1, #0x8] + ldr r0, ._16 + 8 @ debug_sub_815F284 + mov r1, #0x0 + bl CreateTask + mov r0, #0x1 + neg r0, r0 + mov r1, #0x0 + str r1, [sp] + mov r2, #0x0 + mov r3, #0x10 + bl BeginNormalPaletteFade + mov r0, #0x1 + add sp, sp, #0x4 + pop {r1} + bx r1 +._17: + .align 2, 0 +._16: + .word gMain + .word sub_805469C+1 + .word debug_sub_815F284+1 + + thumb_func_end debug_sub_815F2B4 + + thumb_func_start debug_sub_815F2F4 +debug_sub_815F2F4: + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, r9 + mov r5, r8 + push {r5, r6, r7} + add sp, sp, #0xfffffffc + bl CloseMenu + mov r7, #0x1 +._34: + lsl r1, r7, #0x2 + add r0, r1, r7 + lsl r2, r0, #0x5 + ldr r3, ._24 @ gSaveBlock1 + add r0, r2, r3 + ldr r5, ._24 + 4 @ 0x1a08 + add r0, r0, r5 + ldrb r0, [r0] + mov r9, r1 + add r1, r7, #1 + str r1, [sp] + cmp r0, #0 + beq ._18 @cond_branch + b ._19 +._18: + mov r5, #0x0 + ldr r6, ._24 + 8 @ gSaveBlock2 + add r4, r7, #0 + sub r4, r4, #0x46 + ldr r3, ._24 + 12 @ gSaveBlock1 +._21: + add r1, r5, r2 + add r1, r1, r3 + add r0, r5, r6 + ldrb r0, [r0] + strb r0, [r1] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0xff + beq ._20 @cond_branch + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x6 + bls ._21 @cond_branch +._20: + cmp r5, #0x7 + bne ._22 @cond_branch + add r0, r2, #6 + b ._23 +._25: + .align 2, 0 +._24: + .word gSaveBlock1 + .word 0x1a08 + .word gSaveBlock2 + .word gSaveBlock1+0x1a0a +._22: + add r0, r5, r2 +._23: + add r0, r0, r3 + strb r4, [r0] + ldr r1, ._35 @ gSaveBlock1 + ldr r2, ._35 + 4 @ 0x1a08 + add r2, r2, r1 + mov sl, r2 + mov r3, r9 + add r0, r3, r7 + lsl r6, r0, #0x5 + add r1, r6, r1 + ldr r5, ._35 + 4 @ 0x1a08 + add r5, r5, r1 + mov r8, r5 +._30: + bl Random + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x4b + bl __umodsi3 + lsl r0, r0, #0x10 + lsr r0, r0, #0xe + ldr r1, ._35 + 8 @ _843E424 + add r0, r0, r1 + ldrb r0, [r0] + mov r2, r8 + strb r0, [r2] + mov r5, #0x0 + cmp r5, r7 + bcs ._28 @cond_branch + mov r3, sl + ldrb r3, [r3] + cmp r0, r3 + beq ._28 @cond_branch + ldr r4, ._35 @ gSaveBlock1 + add r0, r6, r4 + ldr r2, ._35 + 4 @ 0x1a08 + add r3, r0, r2 +._29: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r7 + bcs ._28 @cond_branch + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x5 + add r0, r0, r4 + add r0, r0, r2 + ldrb r1, [r3] + ldrb r0, [r0] + cmp r1, r0 + bne ._29 @cond_branch +._28: + cmp r5, r7 + bne ._30 @cond_branch + bl Random + mov r5, r9 + add r4, r5, r7 + lsl r4, r4, #0x5 + ldr r1, ._35 @ gSaveBlock1 + add r3, r4, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x1 + ldr r2, ._35 + 12 @ 0x1a09 + add r3, r3, r2 + and r0, r0, r1 + lsl r0, r0, #0x4 + ldrb r1, [r3] + mov r5, #0x11 + neg r5, r5 + add r2, r5, #0 + and r1, r1, r2 + orr r1, r1, r0 + strb r1, [r3] + mov r5, #0x0 + ldr r6, ._35 + 16 @ gSaveBlock1 +._31: + bl Random + add r1, r5, r4 + add r1, r1, r6 + strb r0, [r1] + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x3 + bls ._31 @cond_branch + mov r5, #0x0 + mov r1, r9 + add r0, r1, r7 + lsl r4, r0, #0x5 + ldr r3, ._35 + 20 @ gSaveBlock1 + mov r2, #0x0 + add r6, r3, #0 + add r6, r6, #0x10 +._32: + add r1, r5, r4 + add r0, r1, r3 + strb r2, [r0] + add r1, r1, r6 + strb r2, [r1] + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0xf + bls ._32 @cond_branch + add r0, r7, #0 + bl unref_sub_80BCD7C +._19: + ldr r2, [sp] + lsl r0, r2, #0x18 + lsr r7, r0, #0x18 + cmp r7, #0x13 + bhi ._33 @cond_branch + b ._34 +._33: + mov r0, #0x1 + add sp, sp, #0x4 + pop {r3, r4, r5} + mov r8, r3 + mov r9, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._36: + .align 2, 0 +._35: + .word gSaveBlock1 + .word 0x1a08 + .word _843E424 + .word 0x1a09 + .word gSaveBlock1+0x1a11 + .word gSaveBlock1+0x1a1a + + thumb_func_end debug_sub_815F2F4 + + thumb_func_start debug_sub_815F470 +debug_sub_815F470: + push {r4, r5, r6, r7, lr} + add r6, r0, #0 + add r7, r1, #0 + mov ip, r2 + ldr r2, ._39 @ gSaveBlock1 + ldr r0, ._39 + 4 @ _nakamuraData0 + ldrb r1, [r0] + lsl r0, r1, #0x2 + add r0, r0, r1 + lsl r0, r0, #0x5 + add r0, r0, r2 + ldr r1, ._39 + 8 @ 0x1a08 + add r0, r0, r1 + ldrb r4, [r0] + mov r2, #0x0 + ldr r3, ._39 + 12 @ _843E424 + add r5, r3, #0 +._41: + lsl r1, r2, #0x2 + add r0, r1, r5 + ldrb r0, [r0] + cmp r0, r4 + bne ._37 @cond_branch + add r0, r1, #1 + add r0, r0, r3 + ldrb r0, [r0] + strb r0, [r6] + add r0, r1, #2 + add r0, r0, r3 + ldrb r0, [r0] + strb r0, [r7] + add r0, r1, #3 + add r0, r0, r3 + ldrb r0, [r0] + mov r1, ip + strb r0, [r1] + b ._38 +._40: + .align 2, 0 +._39: + .word gSaveBlock1 + .word _nakamuraData0 + .word 0x1a08 + .word _843E424 +._37: + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x4a + bls ._41 @cond_branch +._38: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_end debug_sub_815F470 + + thumb_func_start debug_sub_815F4D8 +debug_sub_815F4D8: + push {r4, r5, r6, r7, lr} + add sp, sp, #0xfffffffc + mov r0, #0x1 + mov r1, #0x1 + mov r2, #0xa + mov r3, #0xa + bl Menu_BlankWindowRect + ldr r6, ._43 @ gStringVar1 + ldr r7, ._43 + 4 @ _nakamuraData0 + ldrb r1, [r7] + add r0, r6, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + ldr r2, ._43 + 8 @ gSaveBlock1 + ldrb r1, [r7] + lsl r0, r1, #0x2 + add r0, r0, r1 + lsl r0, r0, #0x5 + add r0, r0, r2 + ldr r1, ._43 + 12 @ 0x1a08 + add r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq ._42 @cond_branch + mov r4, sp + add r4, r4, #0x1 + mov r5, sp + add r5, r5, #0x2 + mov r0, sp + add r1, r4, #0 + add r2, r5, #0 + bl debug_sub_815F470 + ldrb r1, [r7] + add r0, r6, #0 + bl sub_80BC190 + add r0, r6, #0 + mov r1, #0x1 + mov r2, #0x3 + bl Menu_PrintText + ldr r0, ._43 + 16 @ Str_843E550 + mov r1, #0x1 + mov r2, #0x5 + bl Menu_PrintText + mov r0, sp + ldrb r1, [r0] + add r0, r6, #0 + mov r2, #0x0 + mov r3, #0x3 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0x2 + mov r2, #0x5 + bl Menu_PrintText + ldr r0, ._43 + 20 @ Str_843E552 + mov r1, #0x1 + mov r2, #0x7 + bl Menu_PrintText + ldrb r1, [r4] + add r0, r6, #0 + mov r2, #0x0 + mov r3, #0x3 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0x3 + mov r2, #0x7 + bl Menu_PrintText + ldr r0, ._43 + 24 @ Str_843E554 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintText + ldrb r1, [r5] + add r0, r6, #0 + mov r2, #0x0 + mov r3, #0x3 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0x3 + mov r2, #0x9 + bl Menu_PrintText +._42: + add sp, sp, #0x4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._44: + .align 2, 0 +._43: + .word gStringVar1 + .word _nakamuraData0 + .word gSaveBlock1 + .word 0x1a08 + .word Str_843E550 + .word Str_843E552 + .word Str_843E554 + + thumb_func_end debug_sub_815F4D8 + + thumb_func_start debug_sub_815F5C4 +debug_sub_815F5C4: + push {lr} + ldr r0, ._48 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x20 + and r0, r0, r1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + cmp r2, #0 + beq ._45 @cond_branch + ldr r1, ._48 + 4 @ _nakamuraData0 + ldrb r0, [r1] + cmp r0, #0 + bne ._46 @cond_branch + mov r0, #0x13 + b ._50 +._49: + .align 2, 0 +._48: + .word gMain + .word _nakamuraData0 +._46: + sub r0, r0, #0x1 + b ._50 +._45: + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._51 @cond_branch + ldr r1, ._54 @ _nakamuraData0 + ldrb r0, [r1] + cmp r0, #0x13 + bne ._52 @cond_branch + strb r2, [r1] + b ._53 +._55: + .align 2, 0 +._54: + .word _nakamuraData0 +._52: + add r0, r0, #0x1 +._50: + strb r0, [r1] +._53: + bl debug_sub_815F4D8 + mov r0, #0x0 + b ._58 +._51: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + bne ._57 @cond_branch + mov r0, #0x0 + b ._58 +._57: + bl CloseMenu + mov r0, #0x1 +._58: + pop {r1} + bx r1 + + thumb_func_end debug_sub_815F5C4 + + thumb_func_start debug_sub_815F62C +debug_sub_815F62C: + push {lr} + ldr r1, ._59 @ _nakamuraData0 + mov r0, #0x0 + strb r0, [r1] + ldr r1, ._59 + 4 @ gMenuCallback + ldr r0, ._59 + 8 @ debug_sub_815F5C4 + str r0, [r1] + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xb + mov r3, #0xb + bl Menu_DrawStdWindowFrame + bl debug_sub_815F4D8 + mov r0, #0x0 + pop {r1} + bx r1 +._60: + .align 2, 0 +._59: + .word _nakamuraData0 + .word gMenuCallback + .word debug_sub_815F5C4+1 + + thumb_func_end debug_sub_815F62C + + thumb_func_start debug_sub_815F668 +debug_sub_815F668: + push {r4, r5, r6, lr} + ldr r0, ._61 @ _nakamuraData0 + ldrb r0, [r0] + lsl r1, r0, #0x2 + add r1, r1, r0 + lsl r1, r1, #0x5 + ldr r0, ._61 + 4 @ gSaveBlock1 + add r1, r1, r0 + ldrb r4, [r1, #0x3] + lsl r4, r4, #0x18 + ldrb r0, [r1, #0x2] + lsl r0, r0, #0x10 + orr r4, r4, r0 + ldrb r0, [r1, #0x1] + lsl r0, r0, #0x8 + orr r4, r4, r0 + ldrb r0, [r1] + orr r4, r4, r0 + ldr r5, ._61 + 8 @ gStringVar1 + ldr r6, ._61 + 12 @ 0x186a0 + add r0, r4, #0 + add r1, r6, #0 + bl __udivsi3 + add r1, r0, #0 + add r0, r5, #0 + mov r2, #0x2 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r5, #0 + mov r1, #0x2 + mov r2, #0x7 + bl Menu_PrintText + add r0, r4, #0 + add r1, r6, #0 + bl __umodsi3 + add r1, r0, #0 + add r0, r5, #0 + mov r2, #0x2 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r5, #0 + mov r1, #0x7 + mov r2, #0x7 + bl Menu_PrintText + pop {r4, r5, r6} + pop {r0} + bx r0 +._62: + .align 2, 0 +._61: + .word _nakamuraData0 + .word gSaveBlock1+0x1a11 + .word gStringVar1 + .word 0x186a0 + + thumb_func_end debug_sub_815F668 + + thumb_func_start debug_sub_815F6E4 +debug_sub_815F6E4: + push {r4, lr} + mov r0, #0x2 + mov r1, #0x3 + mov r2, #0xb + mov r3, #0x4 + bl Menu_BlankWindowRect + ldr r4, ._63 @ gStringVar1 + ldr r0, ._63 + 4 @ _nakamuraData0 + ldrb r0, [r0] + lsl r1, r0, #0x2 + add r1, r1, r0 + lsl r1, r1, #0x5 + ldr r0, ._63 + 8 @ gSaveBlock1 + add r1, r1, r0 + add r0, r4, #0 + mov r2, #0x7 + bl StringCopyN + mov r1, #0xff + strb r1, [r0] + add r0, r4, #0 + mov r1, #0x2 + mov r2, #0x3 + bl Menu_PrintText + pop {r4} + pop {r0} + bx r0 +._64: + .align 2, 0 +._63: + .word gStringVar1 + .word _nakamuraData0 + .word gSaveBlock1+0x1a0a + + thumb_func_end debug_sub_815F6E4 + + thumb_func_start debug_sub_815F72C +debug_sub_815F72C: + push {r4, r5, lr} + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0xb + mov r3, #0xa + bl Menu_BlankWindowRect + ldr r4, ._66 @ gStringVar1 + ldr r5, ._66 + 4 @ _nakamuraData0 + ldrb r1, [r5] + add r0, r4, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + add r0, r4, #0 + mov r1, #0x2 + mov r2, #0x1 + bl Menu_PrintText + ldr r2, ._66 + 8 @ gSaveBlock1 + ldrb r1, [r5] + lsl r0, r1, #0x2 + add r0, r0, r1 + lsl r0, r0, #0x5 + add r0, r0, r2 + ldr r1, ._66 + 12 @ 0x1a08 + add r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq ._65 @cond_branch + bl debug_sub_815F6E4 + bl debug_sub_815F668 +._65: + pop {r4, r5} + pop {r0} + bx r0 +._67: + .align 2, 0 +._66: + .word gStringVar1 + .word _nakamuraData0 + .word gSaveBlock1 + .word 0x1a08 + + thumb_func_end debug_sub_815F72C + + thumb_func_start debug_sub_815F788 +debug_sub_815F788: + push {lr} + mov r0, #0x2 + mov r1, #0x5 + mov r2, #0xb + mov r3, #0x6 + bl Menu_BlankWindowRect + ldr r0, ._68 @ Str_843E574 + ldr r1, ._68 + 4 @ _nakamuraData2 + ldrb r1, [r1] + add r1, r1, #0x2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + mov r2, #0x5 + bl Menu_PrintText + pop {r0} + bx r0 +._69: + .align 2, 0 +._68: + .word Str_843E574 + .word _nakamuraData2 + + thumb_func_end debug_sub_815F788 + + thumb_func_start debug_sub_815F7B4 +debug_sub_815F7B4: + push {lr} + ldr r0, ._72 @ _nakamuraData1 + ldrb r0, [r0] + cmp r0, #0 + beq ._70 @cond_branch + mov r0, #0xb + mov r1, #0x1 + mov r2, #0xb + mov r3, #0x2 + bl Menu_BlankWindowRect + b ._71 +._73: + .align 2, 0 +._72: + .word _nakamuraData1 +._70: + ldr r0, ._74 @ _nakamuraData3 + ldrb r0, [r0] + lsl r0, r0, #0x1 + ldr r1, ._74 + 4 @ Str_843E576 + add r0, r0, r1 + mov r1, #0xb + mov r2, #0x1 + bl Menu_PrintText +._71: + pop {r0} + bx r0 +._75: + .align 2, 0 +._74: + .word _nakamuraData3 + .word Str_843E576 + + thumb_func_end debug_sub_815F7B4 + + thumb_func_start debug_sub_815F7F0 +debug_sub_815F7F0: + push {r4, r5, lr} + ldr r1, ._78 @ _nakamuraData0 + ldrb r2, [r1] + lsl r1, r2, #0x2 + add r1, r1, r2 + lsl r1, r1, #0x5 + ldr r2, ._78 + 4 @ gSaveBlock1 + add r3, r1, r2 + ldrb r1, [r3, #0x3] + lsl r2, r1, #0x18 + ldrb r1, [r3, #0x2] + lsl r1, r1, #0x10 + orr r2, r2, r1 + ldrb r1, [r3, #0x1] + lsl r1, r1, #0x8 + orr r2, r2, r1 + ldrb r1, [r3] + orr r2, r2, r1 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r4, #0x9 + ldr r0, ._78 + 8 @ _nakamuraData2 + ldrb r0, [r0] + cmp r4, r0 + ble ._76 @cond_branch + add r5, r0, #0 +._77: + lsl r0, r1, #0x2 + add r0, r0, r1 + lsl r1, r0, #0x1 + lsl r0, r4, #0x18 + mov r4, #0xff + lsl r4, r4, #0x18 + add r0, r0, r4 + lsr r4, r0, #0x18 + asr r0, r0, #0x18 + cmp r0, r5 + bgt ._77 @cond_branch +._76: + add r2, r2, r1 + lsr r0, r2, #0x18 + strb r0, [r3, #0x3] + mov r0, #0xff + lsl r0, r0, #0x10 + and r0, r0, r2 + lsr r0, r0, #0x10 + strb r0, [r3, #0x2] + mov r0, #0xff + lsl r0, r0, #0x8 + and r0, r0, r2 + lsr r0, r0, #0x8 + strb r0, [r3, #0x1] + strb r2, [r3] + bl debug_sub_815F668 + pop {r4, r5} + pop {r0} + bx r0 +._79: + .align 2, 0 +._78: + .word _nakamuraData0 + .word gSaveBlock1+0x1a11 + .word _nakamuraData2 + + thumb_func_end debug_sub_815F7F0 + + thumb_func_start debug_sub_815F86C +debug_sub_815F86C: + push {r4, r5, r6, lr} + lsl r0, r0, #0x18 + ldr r1, ._84 @ _nakamuraData0 + ldrb r2, [r1] + lsl r1, r2, #0x2 + add r1, r1, r2 + lsl r1, r1, #0x5 + ldr r2, ._84 + 4 @ gSaveBlock1 + add r5, r1, r2 + mov r2, #0x0 + mov r3, #0x0 + lsr r6, r0, #0x18 + asr r0, r0, #0x18 + cmp r0, #0x64 + bne ._80 @cond_branch + ldr r0, ._84 + 8 @ _nakamuraData2 + ldrb r1, [r0] + cmp r1, #0x6 + bhi ._100 @cond_branch + mov r2, #0xff +._82: + add r0, r5, r1 + strb r2, [r0] + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + cmp r1, #0x6 + bls ._82 @cond_branch + b ._100 +._85: + .align 2, 0 +._84: + .word _nakamuraData0 + .word gSaveBlock1+0x1a0a + .word _nakamuraData2 +._80: + ldr r0, ._87 @ _nakamuraData3 + ldrb r0, [r0] + cmp r0, #0x4 + bhi ._98 @cond_branch + lsl r0, r0, #0x2 + ldr r1, ._87 + 4 @ + add r0, r0, r1 + ldr r0, [r0] + mov pc, r0 +._88: + .align 2, 0 +._87: + .word _nakamuraData3 + .word ._89 +._89: + .word ._90 + .word ._91 + .word ._92 + .word ._93 + .word ._94 +._90: + mov r3, #0x1 + mov r2, #0x50 + b ._98 +._91: + mov r3, #0x51 + mov r2, #0xa0 + b ._98 +._92: + mov r3, #0xbb + mov r2, #0xd4 + b ._98 +._93: + mov r3, #0xd5 + mov r2, #0xee + b ._98 +._94: + mov r3, #0xa1 + mov r2, #0xaa +._98: + ldr r4, ._101 @ _nakamuraData2 + ldrb r1, [r4] + add r1, r5, r1 + ldrb r0, [r1] + add r0, r0, r6 + strb r0, [r1] + ldrb r0, [r4] + add r1, r5, r0 + ldrb r0, [r1] + cmp r0, r3 + bcs ._99 @cond_branch + strb r2, [r1] +._99: + ldrb r0, [r4] + add r1, r5, r0 + ldrb r0, [r1] + cmp r0, r2 + bls ._100 @cond_branch + strb r3, [r1] +._100: + bl debug_sub_815F6E4 + pop {r4, r5, r6} + pop {r0} + bx r0 +._102: + .align 2, 0 +._101: + .word _nakamuraData2 + + thumb_func_end debug_sub_815F86C + + thumb_func_start debug_sub_815F930 +debug_sub_815F930: + push {r4, r5, lr} + ldr r0, ._107 @ _nakamuraData1 + ldrb r2, [r0] + mov r4, #0xa + cmp r2, #0 + bne ._103 @cond_branch + mov r4, #0x7 +._103: + ldr r5, ._107 + 4 @ gMain + ldrh r1, [r5, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._104 @cond_branch + cmp r2, #0 + beq ._105 @cond_branch + mov r0, #0x1 + bl debug_sub_815F7F0 + b ._136 +._108: + .align 2, 0 +._107: + .word _nakamuraData1 + .word gMain +._105: + mov r0, #0x1 + b ._113 +._104: + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._110 @cond_branch + cmp r2, #0 + beq ._111 @cond_branch + mov r0, #0x1 + neg r0, r0 + bl debug_sub_815F7F0 + b ._136 +._111: + mov r0, #0x1 + neg r0, r0 + b ._113 +._110: + mov r0, #0x20 + and r0, r0, r1 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + cmp r3, #0 + beq ._114 @cond_branch + ldr r1, ._117 @ _nakamuraData2 + ldrb r0, [r1] + cmp r0, #0 + bne ._115 @cond_branch + sub r0, r4, #1 + b ._116 +._118: + .align 2, 0 +._117: + .word _nakamuraData2 +._115: + sub r0, r0, #0x1 +._116: + strb r0, [r1] +._125: + bl debug_sub_815F788 + b ._136 +._114: + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._120 @cond_branch + ldr r2, ._123 @ _nakamuraData2 + ldrb r1, [r2] + sub r0, r4, #1 + cmp r1, r0 + bne ._121 @cond_branch + strb r3, [r2] + b ._125 +._124: + .align 2, 0 +._123: + .word _nakamuraData2 +._121: + add r0, r1, #1 + strb r0, [r2] + b ._125 +._120: + ldrh r1, [r5, #0x2e] + mov r0, #0x4 + and r0, r0, r1 + cmp r0, #0 + beq ._126 @cond_branch + cmp r2, #0 + bne ._127 @cond_branch + ldr r4, ._129 @ _nakamuraData3 + ldrb r0, [r4] + add r0, r0, #0x1 + mov r1, #0x5 + bl __modsi3 + strb r0, [r4] +._127: + bl debug_sub_815F7B4 + b ._136 +._130: + .align 2, 0 +._129: + .word _nakamuraData3 +._126: + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._131 @cond_branch + mov r0, #0x2 + mov r1, #0x5 + mov r2, #0xb + mov r3, #0x6 + bl Menu_BlankWindowRect + mov r0, #0xb + mov r1, #0x1 + mov r2, #0xb + mov r3, #0x2 + bl Menu_BlankWindowRect + ldr r1, ._133 @ gMenuCallback + ldr r0, ._133 + 4 @ debug_sub_815FA38 + str r0, [r1] + b ._136 +._134: + .align 2, 0 +._133: + .word gMenuCallback + .word debug_sub_815FA38+1 +._131: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._136 @cond_branch + cmp r2, #0 + bne ._136 @cond_branch + mov r0, #0x64 +._113: + bl debug_sub_815F86C +._136: + mov r0, #0x0 + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_end debug_sub_815F930 + + thumb_func_start debug_sub_815FA38 +debug_sub_815FA38: + push {r4, lr} + ldr r0, ._139 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._137 @cond_branch + mov r0, #0x2 + neg r0, r0 + b ._138 +._140: + .align 2, 0 +._139: + .word gMain +._137: + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._141 @cond_branch + mov r0, #0x2 +._138: + bl Menu_MoveCursor +._161: + mov r0, #0x0 + b ._142 +._141: + mov r0, #0x20 + and r0, r0, r1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + cmp r2, #0 + beq ._143 @cond_branch + ldr r1, ._146 @ _nakamuraData0 + ldrb r0, [r1] + cmp r0, #0 + bne ._144 @cond_branch + mov r0, #0x13 + b ._148 +._147: + .align 2, 0 +._146: + .word _nakamuraData0 +._144: + sub r0, r0, #0x1 + b ._148 +._143: + mov r0, #0x10 + and r0, r0, r1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0 + beq ._149 @cond_branch + ldr r1, ._152 @ _nakamuraData0 + ldrb r0, [r1] + cmp r0, #0x13 + bne ._150 @cond_branch + strb r2, [r1] + b ._151 +._153: + .align 2, 0 +._152: + .word _nakamuraData0 +._150: + add r0, r0, #0x1 +._148: + strb r0, [r1] +._151: + bl debug_sub_815F72C + b ._161 +._149: + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._155 @cond_branch + ldr r1, ._159 @ _nakamuraData0 + ldrb r0, [r1] + cmp r0, #0 + beq ._161 @cond_branch + ldr r2, ._159 + 4 @ gSaveBlock1 + add r1, r0, #0 + lsl r0, r1, #0x2 + add r0, r0, r1 + lsl r0, r0, #0x5 + add r0, r0, r2 + ldr r1, ._159 + 8 @ 0x1a08 + add r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq ._161 @cond_branch + bl Menu_GetCursorPos + ldr r1, ._159 + 12 @ _nakamuraData1 + strb r0, [r1] + ldr r0, ._159 + 16 @ _nakamuraData2 + strb r4, [r0] + bl debug_sub_815F788 + bl debug_sub_815F7B4 + ldr r1, ._159 + 20 @ gMenuCallback + ldr r0, ._159 + 24 @ debug_sub_815F930 + str r0, [r1] + b ._161 +._160: + .align 2, 0 +._159: + .word _nakamuraData0 + .word gSaveBlock1 + .word 0x1a08 + .word _nakamuraData1 + .word _nakamuraData2 + .word gMenuCallback + .word debug_sub_815F930+1 +._155: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._161 @cond_branch + bl CloseMenu + mov r0, #0x1 +._142: + pop {r4} + pop {r1} + bx r1 + + thumb_func_end debug_sub_815FA38 + + thumb_func_start debug_sub_815FB1C +debug_sub_815FB1C: + push {lr} + add sp, sp, #0xfffffff8 + ldr r0, ._162 @ _nakamuraData0 + mov r1, #0x0 + strb r1, [r0] + ldr r0, ._162 + 4 @ _nakamuraData3 + strb r1, [r0] + ldr r1, ._162 + 8 @ gMenuCallback + ldr r0, ._162 + 12 @ debug_sub_815FA38 + str r0, [r1] + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xc + mov r3, #0xb + bl Menu_DrawStdWindowFrame + bl debug_sub_815F72C + mov r0, #0x0 + str r0, [sp] + mov r0, #0xb + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x3 + mov r3, #0x3 + bl InitMenu + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._163: + .align 2, 0 +._162: + .word _nakamuraData0 + .word _nakamuraData3 + .word gMenuCallback + .word debug_sub_815FA38+1 + + thumb_func_end debug_sub_815FB1C + + thumb_func_start debug_sub_815FB78 +debug_sub_815FB78: + push {lr} + ldr r0, ._166 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._164 @cond_branch + mov r0, #0x1 + neg r0, r0 + b ._165 +._167: + .align 2, 0 +._166: + .word gMain +._164: + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._168 @cond_branch + mov r0, #0x1 +._165: + bl Menu_MoveCursor + mov r0, #0x0 + b ._177 +._168: + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._170 @cond_branch + bl CloseMenu + bl Menu_GetCursorPos + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0 + beq ._171 @cond_branch + cmp r0, #0x1 + beq ._172 @cond_branch + b ._175 +._171: + bl debug_sub_814A714 + b ._175 +._172: + bl ClearRoamerData + bl ClearRoamerLocationData + b ._175 +._170: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + bne ._176 @cond_branch + mov r0, #0x0 + b ._177 +._176: + bl CloseMenu +._175: + mov r0, #0x1 +._177: + pop {r1} + bx r1 + + thumb_func_end debug_sub_815FB78 + + thumb_func_start debug_sub_815FBE8 +debug_sub_815FBE8: + push {r4, lr} + add sp, sp, #0xfffffff8 + ldr r1, ._178 @ gMenuCallback + ldr r0, ._178 + 4 @ debug_sub_815FB78 + str r0, [r1] + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + ldr r4, ._178 + 8 @ gStringVar1 + add r0, r4, #0 + bl debug_sub_814A73C + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xb + mov r3, #0x9 + bl Menu_DrawStdWindowFrame + add r0, r4, #0 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + ldr r0, ._178 + 12 @ Str_843E580 + mov r1, #0x2 + mov r2, #0x3 + bl Menu_PrintText + mov r0, #0x0 + str r0, [sp] + mov r0, #0xa + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x3 + mov r3, #0x3 + bl InitMenu + mov r0, #0x0 + add sp, sp, #0x8 + pop {r4} + pop {r1} + bx r1 +._179: + .align 2, 0 +._178: + .word gMenuCallback + .word debug_sub_815FB78+1 + .word gStringVar1 + .word Str_843E580 + + thumb_func_end debug_sub_815FBE8 + + thumb_func_start debug_sub_815FC54 +debug_sub_815FC54: + push {r4, r5, r6, r7, lr} + mov r3, #0x0 + ldr r7, ._181 @ gSaveBlock1 + mov r6, #0xe8 + lsl r6, r6, #0x3 + ldr r5, ._181 + 4 @ 0x3e7 + ldr r4, ._181 + 8 @ 0x742 +._180: + lsl r1, r3, #0x2 + add r1, r1, r7 + add r2, r3, #0 + add r2, r2, #0x85 + add r0, r1, r6 + strh r2, [r0] + add r1, r1, r4 + strh r5, [r1] + add r0, r3, #1 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + cmp r3, #0x2a + bls ._180 @cond_branch + bl CloseMenu + mov r0, #0x1 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._182: + .align 2, 0 +._181: + .word gSaveBlock1 + .word 0x3e7 + .word 0x742 + + thumb_func_end debug_sub_815FC54 + + thumb_func_start debug_sub_815FC94 +debug_sub_815FC94: + push {lr} + bl ClearDecorationInventories + bl debug_sub_814A3A8 + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 + + thumb_func_end debug_sub_815FC94 + + thumb_func_start debug_sub_815FCB4 +debug_sub_815FCB4: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + mov r7, #0x0 + ldr r5, ._188 @ gMapHeader + ldr r0, [r5] + ldr r0, [r0, #0x4] + mov r1, #0x3 + bl __divsi3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add r1, r0, #0 + mul r1, r1, r4 + lsl r1, r1, #0x10 + lsr r6, r1, #0x10 + add r0, r6, r0 + mov r9, r5 + cmp r6, r0 + bge ._183 @cond_branch + mov r8, r0 +._187: + mov r4, #0x0 + mov r1, r9 + ldr r0, [r1] + ldr r0, [r0] + add r5, r6, #1 + cmp r4, r0 + bge ._184 @cond_branch + ldr r0, ._188 @ gMapHeader + mov r9, r0 +._186: + add r0, r4, #7 + add r1, r6, #7 + bl MapGridGetMetatileBehaviorAt + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_805759C + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x1 + bne ._185 @cond_branch + add r0, r7, #1 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 +._185: + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + ldr r0, ._188 @ gMapHeader + ldr r0, [r0] + ldr r0, [r0] + cmp r4, r0 + blt ._186 @cond_branch +._184: + lsl r0, r5, #0x10 + lsr r6, r0, #0x10 + cmp r6, r8 + blt ._187 @cond_branch +._183: + add r0, r7, #0 + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._189: + .align 2, 0 +._188: + .word gMapHeader + + thumb_func_end debug_sub_815FCB4 + + thumb_func_start debug_sub_815FD40 +debug_sub_815FD40: + push {r4, r5, r6, r7, lr} + add sp, sp, #0xfffffffc + mov r6, #0x0 + mov r4, sp + add r4, r4, #0x2 + mov r0, sp + add r1, r4, #0 + bl GetXYCoordsOneStepInFrontOfPlayer + mov r1, sp + mov r0, sp + ldrh r0, [r0] + sub r0, r0, #0x7 + strh r0, [r1] + ldrh r0, [r4] + sub r0, r0, #0x7 + strh r0, [r4] + mov r5, #0x0 + ldr r1, ._192 @ gMapHeader + ldr r0, [r1] + ldr r0, [r0, #0x4] + add r7, r4, #0 + cmp r6, r0 + bge ._190 @cond_branch +._199: + mov r4, #0x0 + ldr r0, [r1] + b ._191 +._193: + .align 2, 0 +._192: + .word gMapHeader +._198: + add r0, r4, #7 + add r1, r5, #7 + bl MapGridGetMetatileBehaviorAt + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_805759C + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x1 + bne ._196 @cond_branch + add r0, r6, #1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + mov r0, sp + mov r1, #0x0 + ldsh r0, [r0, r1] + cmp r0, r4 + bne ._196 @cond_branch + mov r1, #0x0 + ldsh r0, [r7, r1] + cmp r0, r5 + bne ._196 @cond_branch + add r0, r6, #0 + b ._197 +._196: + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + ldr r0, ._200 @ gMapHeader + ldr r0, [r0] +._191: + ldr r0, [r0] + cmp r4, r0 + blt ._198 @cond_branch + add r0, r5, #1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + ldr r1, ._200 @ gMapHeader + ldr r0, [r1] + ldr r0, [r0, #0x4] + cmp r5, r0 + blt ._199 @cond_branch +._190: + add r0, r6, #1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 +._197: + add sp, sp, #0x4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._201: + .align 2, 0 +._200: + .word gMapHeader + + thumb_func_end debug_sub_815FD40 + + thumb_func_start debug_sub_815FDE4 +debug_sub_815FDE4: + push {lr} + ldr r0, ._205 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + bne ._202 @cond_branch + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._203 @cond_branch +._202: + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + bl CloseMenu + mov r0, #0x1 + b ._204 +._206: + .align 2, 0 +._205: + .word gMain +._203: + mov r0, #0x0 +._204: + pop {r1} + bx r1 + + thumb_func_end debug_sub_815FDE4 + + thumb_func_start debug_sub_815FE1C +debug_sub_815FE1C: + push {r4, r5, r6, r7, lr} + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x10 + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r0, ._210 @ Str_843E58D + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + ldr r6, ._210 + 4 @ gStringVar1 + mov r0, #0x0 + bl debug_sub_815FCB4 + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r6, #0 + mov r2, #0x1 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0x5 + mov r2, #0x3 + bl Menu_PrintText + mov r0, #0x1 + bl debug_sub_815FCB4 + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r6, #0 + mov r2, #0x1 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0x5 + mov r2, #0x5 + bl Menu_PrintText + mov r0, #0x2 + bl debug_sub_815FCB4 + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r6, #0 + mov r2, #0x1 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0x5 + mov r2, #0x7 + bl Menu_PrintText + mov r0, #0x0 + bl debug_sub_8092344 + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r6, #0 + mov r2, #0x1 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0xb + mov r2, #0x3 + bl Menu_PrintText + mov r0, #0x1 + bl debug_sub_8092344 + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r6, #0 + mov r2, #0x1 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0xb + mov r2, #0x5 + bl Menu_PrintText + mov r0, #0x2 + bl debug_sub_8092344 + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r6, #0 + mov r2, #0x1 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0xb + mov r2, #0x7 + bl Menu_PrintText + ldr r0, ._210 + 8 @ gSaveBlock1 + ldr r1, ._210 + 12 @ 0x2dd6 + add r0, r0, r1 + ldrh r0, [r0] + bl FeebasSeedRng + mov r0, #0x0 + bl debug_sub_815FCB4 + add r4, r0, #0 + mov r0, #0x1 + bl debug_sub_815FCB4 + add r5, r0, #0 + mov r0, #0x2 + bl debug_sub_815FCB4 + add r4, r4, r5 + add r0, r0, r4 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + mov r5, #0x0 +._209: + bl FeebasRandom + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add r1, r7, #0 + bl __umodsi3 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + cmp r1, #0 + bne ._207 @cond_branch + add r1, r7, #0 +._207: + sub r0, r1, #1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0x2 + bls ._208 @cond_branch + add r0, r6, #0 + mov r2, #0x1 + mov r3, #0x4 + bl ConvertIntToDecimalStringN + add r0, r5, #0 + mov r1, #0x3 + bl __umodsi3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r4, r0, #0x2 + add r4, r4, r0 + add r4, r4, #0x2 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + add r0, r5, #0 + mov r1, #0x3 + bl __udivsi3 + add r2, r0, #0 + lsl r2, r2, #0x19 + mov r0, #0xb0 + lsl r0, r0, #0x14 + add r2, r2, r0 + lsr r2, r2, #0x18 + add r0, r6, #0 + add r1, r4, #0 + bl Menu_PrintText + add r0, r5, #1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 +._208: + cmp r5, #0x6 + bne ._209 @cond_branch + ldr r4, ._210 + 4 @ gStringVar1 + bl debug_sub_815FD40 + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r4, #0 + mov r2, #0x1 + mov r3, #0x4 + bl ConvertIntToDecimalStringN + add r0, r4, #0 + mov r1, #0x2 + mov r2, #0x11 + bl Menu_PrintText + ldr r1, ._210 + 16 @ gMenuCallback + ldr r0, ._210 + 20 @ debug_sub_815FDE4 + str r0, [r1] + mov r0, #0x0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._211: + .align 2, 0 +._210: + .word Str_843E58D + .word gStringVar1 + .word gSaveBlock1 + .word 0x2dd6 + .word gMenuCallback + .word debug_sub_815FDE4+1 + + thumb_func_end debug_sub_815FE1C + + thumb_func_start debug_sub_815FFDC +debug_sub_815FFDC: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r0, #0xe + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xd + bl Menu_DrawStdWindowFrame + mov r0, #0x0 + mov r1, #0xe + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r0, ._214 @ Str_843E5D4 + mov r1, #0x1 + mov r2, #0xf + bl Menu_PrintText + mov r5, #0x0 + ldr r0, ._214 + 4 @ _nakamuraStatic0 + mov r8, r0 +._216: + mov r0, #0x64 + add r1, r5, #0 + mul r1, r1, r0 + ldr r0, ._214 + 8 @ gPlayerParty + add r6, r1, r0 + add r0, r6, #0 + mov r1, #0xb + bl GetMonData + lsl r1, r5, #0x2 + mov r2, r8 + add r4, r1, r2 + strh r0, [r4] + lsl r0, r0, #0x10 + add r7, r1, #0 + cmp r0, #0 + beq ._212 @cond_branch + add r0, r6, #0 + mov r1, #0x38 + bl GetMonData + strb r0, [r4, #0x2] + add r0, r5, #0 + bl debug_sub_816009C + add r0, r5, #0 + bl debug_sub_81600D0 + add r0, r5, #0 + bl debug_sub_816013C + b ._213 +._215: + .align 2, 0 +._214: + .word Str_843E5D4 + .word _nakamuraStatic0 + .word gPlayerParty +._212: + mov r0, #0x1 + strb r0, [r4, #0x2] +._213: + mov r0, r8 + add r1, r7, r0 + mov r0, #0x0 + strb r0, [r1, #0x3] + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x5 + bls ._216 @cond_branch + ldr r1, ._217 @ _nakamuraData4 + mov r0, #0x0 + strb r0, [r1] + mov r0, #0xf + mov r1, #0x1 + mov r2, #0xff + bl PrintTriangleCursorWithPalette + ldr r1, ._217 + 4 @ gMenuCallback + ldr r0, ._217 + 8 @ debug_sub_8160498 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._218: + .align 2, 0 +._217: + .word _nakamuraData4 + .word gMenuCallback + .word debug_sub_8160498+1 + + thumb_func_end debug_sub_815FFDC + + thumb_func_start debug_sub_816009C +debug_sub_816009C: + push {lr} + add r2, r0, #0 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + ldr r1, ._219 @ _nakamuraStatic0 + lsl r0, r2, #0x2 + add r0, r0, r1 + mov r3, #0x0 + ldsh r1, [r0, r3] + mov r0, #0xb + mul r0, r0, r1 + ldr r1, ._219 + 4 @ gSpeciesNames + add r0, r0, r1 + lsl r2, r2, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + mov r1, #0x10 + bl Menu_PrintText + pop {r0} + bx r0 +._220: + .align 2, 0 +._219: + .word _nakamuraStatic0 + .word gSpeciesNames + + thumb_func_end debug_sub_816009C + + thumb_func_start debug_sub_81600D0 +debug_sub_81600D0: + push {r4, r5, lr} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + add r5, r4, #0 + ldr r1, ._223 @ Str_843E5F0 + mov r0, sp + mov r2, #0x2 + bl memcpy + mov r0, #0x64 + mul r0, r0, r4 + ldr r1, ._223 + 4 @ gPlayerParty + add r0, r0, r1 + bl GetMonGender + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0 + bne ._221 @cond_branch + ldr r0, ._223 + 8 @ gOtherText_MaleSymbol2 + b ._222 +._224: + .align 2, 0 +._223: + .word Str_843E5F0 + .word gPlayerParty + .word gOtherText_MaleSymbol2 +._221: + cmp r0, #0xfe + bne ._225 @cond_branch + ldr r0, ._227 @ gOtherText_FemaleSymbolAndLv +._222: + lsl r2, r4, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + mov r1, #0x17 + bl Menu_PrintText + b ._226 +._228: + .align 2, 0 +._227: + .word gOtherText_FemaleSymbolAndLv +._225: + lsl r2, r5, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + mov r0, sp + mov r1, #0x17 + bl Menu_PrintText +._226: + add sp, sp, #0x4 + pop {r4, r5} + pop {r0} + bx r0 + + thumb_func_end debug_sub_81600D0 + + thumb_func_start debug_sub_816013C +debug_sub_816013C: + push {r4, r5, lr} + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + ldr r5, ._229 @ gStringVar1 + ldr r1, ._229 + 4 @ _nakamuraStatic0 + lsl r0, r4, #0x2 + add r0, r0, r1 + mov r1, #0x2 + ldrsb r1, [r0, r1] + add r0, r5, #0 + mov r2, #0x1 + mov r3, #0x3 + bl ConvertIntToDecimalStringN + lsl r4, r4, #0x1 + add r4, r4, #0x1 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + add r0, r5, #0 + mov r1, #0x1a + add r2, r4, #0 + bl Menu_PrintText + pop {r4, r5} + pop {r0} + bx r0 +._230: + .align 2, 0 +._229: + .word gStringVar1 + .word _nakamuraStatic0 + + thumb_func_end debug_sub_816013C + + thumb_func_start debug_sub_816017C +debug_sub_816017C: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + lsl r3, r4, #0x1 + add r1, r3, #1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r3, r3, #0x2 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + mov r0, #0x10 + mov r2, #0x1c + bl Menu_BlankWindowRect + ldr r1, ._232 @ _nakamuraStatic0 + lsl r0, r4, #0x2 + add r0, r0, r1 + mov r1, #0x0 + ldsh r0, [r0, r1] + cmp r0, #0 + beq ._231 @cond_branch + add r0, r4, #0 + bl debug_sub_816009C + add r0, r4, #0 + bl debug_sub_81600D0 + add r0, r4, #0 + bl debug_sub_816013C +._231: + mov r0, #0x5 + bl debug_sub_81603B8 + pop {r4} + pop {r0} + bx r0 +._233: + .align 2, 0 +._232: + .word _nakamuraStatic0 + + thumb_func_end debug_sub_816017C + + thumb_func_start debug_sub_81601C8 +debug_sub_81601C8: + push {r4, r5, lr} + add sp, sp, #0xfffffff0 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + ldr r1, ._239 @ _nakamuraStatic0 + lsl r0, r5, #0x2 + add r2, r0, r1 + mov r4, #0x0 + ldsh r0, [r2, r4] + cmp r0, #0 + bne ._236 @cond_branch + ldrb r0, [r2, #0x3] + cmp r0, #0 + bne ._236 @cond_branch + cmp r3, #0x1 + bne ._236 @cond_branch + mov r0, #0x8a + lsl r0, r0, #0x1 + strh r0, [r2] +._236: + lsl r0, r5, #0x2 + add r4, r0, r1 + lsl r0, r3, #0x18 + asr r0, r0, #0x18 + ldrh r1, [r4] + add r2, r0, r1 + mov r3, #0x0 + strh r2, [r4] + lsl r1, r2, #0x10 + mov r0, #0xcd + lsl r0, r0, #0x11 + cmp r1, r0 + ble ._237 @cond_branch + ldr r1, ._239 + 4 @ 0xfffffe65 + add r0, r2, r1 + strh r0, [r4] +._237: + ldrh r1, [r4] + mov r2, #0x0 + ldsh r0, [r4, r2] + cmp r0, #0 + bge ._238 @cond_branch + ldr r2, ._239 + 8 @ 0x19b + add r0, r1, r2 + strh r0, [r4] +._238: + mov r0, #0x64 + mul r0, r0, r5 + ldr r1, ._239 + 12 @ gPlayerParty + add r0, r0, r1 + ldrh r1, [r4] + ldrb r2, [r4, #0x2] + str r3, [sp] + str r3, [sp, #0x4] + str r3, [sp, #0x8] + str r3, [sp, #0xc] + mov r3, #0x20 + bl CreateMon + mov r0, #0x1 + strb r0, [r4, #0x3] + add sp, sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 +._240: + .align 2, 0 +._239: + .word _nakamuraStatic0 + .word 0xfffffe65 + .word 0x19b + .word gPlayerParty + + thumb_func_end debug_sub_81601C8 + + thumb_func_start debug_sub_8160258 +debug_sub_8160258: + push {lr} + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + ldr r1, ._242 @ _nakamuraStatic0 + lsl r0, r2, #0x2 + add r0, r0, r1 + mov r1, #0x0 + ldsh r0, [r0, r1] + cmp r0, #0 + beq ._241 @cond_branch + add r0, r2, #0 + bl debug_sub_816062C +._241: + pop {r0} + bx r0 +._243: + .align 2, 0 +._242: + .word _nakamuraStatic0 + + thumb_func_end debug_sub_8160258 + + thumb_func_start debug_sub_816027C +debug_sub_816027C: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + add r4, r0, #0 + lsl r1, r1, #0x18 + lsr r2, r1, #0x18 + ldr r1, ._247 @ _nakamuraStatic0 + lsl r0, r4, #0x2 + add r3, r0, r1 + mov r1, #0x0 + ldsh r0, [r3, r1] + cmp r0, #0 + beq ._244 @cond_branch + lsl r0, r2, #0x18 + asr r0, r0, #0x18 + ldrb r1, [r3, #0x2] + add r0, r0, r1 + strb r0, [r3, #0x2] + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + cmp r0, #0x64 + ble ._245 @cond_branch + mov r0, #0x1 + strb r0, [r3, #0x2] +._245: + mov r0, #0x2 + ldrsb r0, [r3, r0] + cmp r0, #0 + bgt ._246 @cond_branch + mov r0, #0x64 + strb r0, [r3, #0x2] +._246: + mov r0, #0x64 + mul r4, r4, r0 + ldr r0, ._247 + 4 @ gPlayerParty + add r4, r4, r0 + ldr r2, ._247 + 8 @ gBaseStats + mov r0, #0x0 + ldsh r1, [r3, r0] + lsl r0, r1, #0x3 + sub r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r2 + ldrb r1, [r0, #0x13] + mov r0, #0xca + lsl r0, r0, #0x1 + add r2, r1, #0 + mul r2, r2, r0 + mov r0, #0x2 + ldrsb r0, [r3, r0] + lsl r0, r0, #0x2 + ldr r1, ._247 + 12 @ gExperienceTables + add r0, r0, r1 + add r2, r2, r0 + add r0, r4, #0 + mov r1, #0x19 + bl SetMonData + add r0, r4, #0 + bl debug_sub_803F55C +._244: + pop {r4} + pop {r0} + bx r0 +._248: + .align 2, 0 +._247: + .word _nakamuraStatic0 + .word gPlayerParty + .word gBaseStats + .word gExperienceTables + + thumb_func_end debug_sub_816027C + + thumb_func_start debug_sub_8160308 +debug_sub_8160308: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + add sp, sp, #0xffffff8c + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + mov r2, #0x0 +._252: + add r1, r2, #1 + lsl r0, r1, #0x18 + lsr r5, r0, #0x18 + mov r8, r1 + cmp r5, #0x5 + bhi ._249 @cond_branch + mov r0, #0x64 + mov r9, r0 + mov r0, r9 + mul r0, r0, r2 + ldr r7, ._254 @ gPlayerParty + add r6, r0, r7 +._251: + add r0, r6, #0 + mov r1, #0xb + mov r2, #0x0 + bl GetMonData + cmp r0, #0 + bne ._250 @cond_branch + add r0, sp, #0x10 + add r1, r6, #0 + mov r2, #0x64 + bl memcpy + mov r4, r9 + mul r4, r4, r5 + add r4, r4, r7 + add r0, r6, #0 + add r1, r4, #0 + mov r2, #0x64 + bl memcpy + add r0, r4, #0 + add r1, sp, #0x10 + mov r2, #0x64 + bl memcpy +._250: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x5 + bls ._251 @cond_branch +._249: + mov r1, r8 + lsl r0, r1, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x4 + bls ._252 @cond_branch + bl CalculatePlayerPartyCount + ldr r4, ._254 + 4 @ gPlayerPartyCount + ldrb r1, [r4] + cmp r1, #0 + bne ._253 @cond_branch + ldr r0, ._254 @ gPlayerParty + str r1, [sp] + str r1, [sp, #0x4] + str r1, [sp, #0x8] + str r1, [sp, #0xc] + mov r1, #0x1 + mov r2, #0xa + mov r3, #0x20 + bl CreateMon + mov r0, #0x1 + strb r0, [r4] +._253: + add sp, sp, #0x74 + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._255: + .align 2, 0 +._254: + .word gPlayerParty + .word gPlayerPartyCount + + thumb_func_end debug_sub_8160308 + + thumb_func_start debug_sub_81603B8 +debug_sub_81603B8: + push {r4, r5, r6, r7, lr} + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + mov r0, #0x5 + bl PlaySE + ldr r7, ._259 @ _nakamuraData4 + ldrb r4, [r7] + add r0, r4, #0 + mov r1, #0x6 + bl __udivsi3 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + add r0, r4, #0 + mov r1, #0x6 + bl __umodsi3 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, ._259 + 4 @ _843E5D1 + add r0, r5, r0 + ldrb r2, [r0] + lsl r3, r4, #0x1 + add r1, r3, #1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r3, r3, #0x2 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + add r0, r2, #0 + bl Menu_BlankWindowRect + cmp r6, #0 + bne ._256 @cond_branch + cmp r4, #0 + beq ._257 @cond_branch + ldrb r0, [r7] + sub r0, r0, #0x1 + b ._258 +._260: + .align 2, 0 +._259: + .word _nakamuraData4 + .word _843E5D1 +._257: + lsl r0, r5, #0x1 + add r0, r0, r5 + lsl r0, r0, #0x1 + add r0, r0, #0x5 +._258: + strb r0, [r7] +._256: + ldr r1, ._264 @ _nakamuraData4 + cmp r6, #0x1 + bne ._261 @cond_branch + cmp r4, #0x5 + beq ._262 @cond_branch + ldrb r0, [r1] + add r0, r0, #0x1 + b ._263 +._265: + .align 2, 0 +._264: + .word _nakamuraData4 +._262: + lsl r0, r5, #0x1 + add r0, r0, r5 + lsl r0, r0, #0x1 +._263: + strb r0, [r1] +._261: + cmp r6, #0x2 + bne ._266 @cond_branch + cmp r5, #0 + beq ._267 @cond_branch + ldrb r0, [r1] + sub r0, r0, #0x6 + b ._268 +._267: + add r0, r4, #0 + add r0, r0, #0xc +._268: + strb r0, [r1] +._266: + cmp r6, #0x3 + bne ._271 @cond_branch + cmp r5, #0x2 + beq ._270 @cond_branch + ldrb r0, [r1] + add r0, r0, #0x6 + strb r0, [r1] + b ._271 +._270: + strb r4, [r1] +._271: + ldrb r4, [r1] + add r0, r4, #0 + mov r1, #0x6 + bl __udivsi3 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + add r0, r4, #0 + mov r1, #0x6 + bl __umodsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + ldr r0, ._272 @ _843E5D1 + add r0, r5, r0 + ldrb r0, [r0] + lsr r1, r1, #0x17 + add r1, r1, #0x1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + mov r2, #0xff + bl PrintTriangleCursorWithPalette + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._273: + .align 2, 0 +._272: + .word _843E5D1 + + thumb_func_end debug_sub_81603B8 + + thumb_func_start debug_sub_8160498 +debug_sub_8160498: + push {r4, lr} + ldr r1, ._276 @ gMain + ldrh r2, [r1, #0x2e] + mov r0, #0x40 + and r0, r0, r2 + cmp r0, #0 + beq ._274 @cond_branch + mov r0, #0x0 + b ._281 +._277: + .align 2, 0 +._276: + .word gMain +._274: + mov r0, #0x80 + and r0, r0, r2 + cmp r0, #0 + beq ._278 @cond_branch + mov r0, #0x1 + b ._281 +._278: + mov r0, #0x20 + and r0, r0, r2 + cmp r0, #0 + beq ._280 @cond_branch + mov r0, #0x2 + b ._281 +._280: + mov r0, #0x10 + and r0, r0, r2 + cmp r0, #0 + beq ._282 @cond_branch + mov r0, #0x3 +._281: + bl debug_sub_81603B8 + mov r0, #0x0 + b ._311 +._282: + ldrh r1, [r1, #0x30] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._284 @cond_branch + ldr r4, ._289 @ _nakamuraData4 + ldrb r0, [r4] + cmp r0, #0x5 + bhi ._285 @cond_branch + mov r1, #0x1 + bl debug_sub_81601C8 +._285: + ldrb r0, [r4] + sub r0, r0, #0x6 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x5 + bhi ._286 @cond_branch + ldrb r0, [r4] + mov r1, #0x6 + bl __umodsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl debug_sub_8160258 +._286: + ldrb r0, [r4] + sub r0, r0, #0xc + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x5 + bhi ._306 @cond_branch + ldrb r0, [r4] + mov r1, #0x6 + bl __umodsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x1 + b ._300 +._290: + .align 2, 0 +._289: + .word _nakamuraData4 +._284: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._291 @cond_branch + ldr r4, ._294 @ _nakamuraData4 + ldrb r0, [r4] + cmp r0, #0x5 + bhi ._304 @cond_branch + mov r1, #0x1 + neg r1, r1 + b ._293 +._295: + .align 2, 0 +._294: + .word _nakamuraData4 +._291: + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._296 @cond_branch + ldr r4, ._301 @ _nakamuraData4 + ldrb r0, [r4] + cmp r0, #0x5 + bhi ._297 @cond_branch + mov r1, #0xa + bl debug_sub_81601C8 +._297: + ldrb r0, [r4] + sub r0, r0, #0x6 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x5 + bhi ._298 @cond_branch + ldrb r0, [r4] + mov r1, #0x6 + bl __umodsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl debug_sub_8160258 +._298: + ldrb r0, [r4] + sub r0, r0, #0xc + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x5 + bhi ._306 @cond_branch + ldrb r0, [r4] + mov r1, #0x6 + bl __umodsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x1 + b ._300 +._302: + .align 2, 0 +._301: + .word _nakamuraData4 +._296: + mov r0, #0x80 + lsl r0, r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._303 @cond_branch + ldr r4, ._308 @ _nakamuraData4 + ldrb r0, [r4] + cmp r0, #0x5 + bhi ._304 @cond_branch + mov r1, #0xa + neg r1, r1 +._293: + bl debug_sub_81601C8 +._304: + ldrb r0, [r4] + sub r0, r0, #0x6 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x5 + bhi ._305 @cond_branch + ldrb r0, [r4] + mov r1, #0x6 + bl __umodsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl debug_sub_8160258 +._305: + ldrb r0, [r4] + sub r0, r0, #0xc + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x5 + bhi ._306 @cond_branch + ldrb r0, [r4] + mov r1, #0x6 + bl __umodsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x1 + neg r1, r1 +._300: + bl debug_sub_816027C +._306: + ldrb r0, [r4] + mov r1, #0x6 + bl __umodsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl debug_sub_816017C + mov r0, #0x0 + b ._311 +._309: + .align 2, 0 +._308: + .word _nakamuraData4 +._303: + mov r0, #0x8 + and r0, r0, r2 + cmp r0, #0 + bne ._310 @cond_branch + mov r0, #0x0 + b ._311 +._310: + bl debug_sub_8160308 + bl CloseMenu + mov r0, #0x1 +._311: + pop {r4} + pop {r1} + bx r1 + + thumb_func_end debug_sub_8160498 + + thumb_func_start debug_sub_816062C +debug_sub_816062C: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + add sp, sp, #0xfffffff0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r8, r0 + mov r0, #0x64 + mov r4, r8 + mul r4, r4, r0 + ldr r0, ._316 @ gPlayerParty + add r4, r4, r0 + add r0, r4, #0 + mov r1, #0xb + bl GetMonData + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + add r0, r4, #0 + bl GetMonGender + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + ldr r1, ._316 + 4 @ gBaseStats + lsl r0, r7, #0x3 + sub r0, r0, r7 + lsl r0, r0, #0x2 + add r0, r0, r1 + ldrb r6, [r0, #0x10] + cmp r6, #0 + beq ._313 @cond_branch + cmp r6, #0xfe + beq ._313 @cond_branch + cmp r6, #0xff + bne ._314 @cond_branch +._313: + mov r0, #0x64 + mov r1, r8 + mul r1, r1, r0 + add r0, r1, #0 + ldr r1, ._316 @ gPlayerParty + add r0, r0, r1 + bl GetMonGender + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + b ._320 +._317: + .align 2, 0 +._316: + .word gPlayerParty + .word gBaseStats +._314: + cmp r2, #0 + beq ._318 @cond_branch + cmp r2, #0xfe + beq ._319 @cond_branch + mov r0, #0x0 + b ._320 +._318: + mov r6, #0xfe + b ._321 +._319: + mov r6, #0x0 +._321: + mov r0, r8 + lsl r0, r0, #0x2 + mov r9, r0 +._322: + bl Random + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + bl Random + lsl r0, r0, #0x10 + orr r5, r5, r0 + add r0, r7, #0 + add r1, r5, #0 + bl GetGenderFromSpeciesAndPersonality + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, r6 + bne ._322 @cond_branch + mov r0, #0x64 + mov r4, r8 + mul r4, r4, r0 + ldr r0, ._323 @ gPlayerParty + add r4, r4, r0 + add r0, r4, #0 + mov r1, #0x42 + bl GetMonData + ldr r0, ._323 + 4 @ _nakamuraStatic0 + add r0, r0, r9 + ldrh r1, [r0] + ldrb r2, [r0, #0x2] + mov r0, #0x1 + str r0, [sp] + str r5, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + str r0, [sp, #0xc] + add r0, r4, #0 + mov r3, #0x20 + bl CreateMon + add r0, r6, #0 +._320: + add sp, sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._324: + .align 2, 0 +._323: + .word gPlayerParty + .word _nakamuraStatic0 + + thumb_func_end debug_sub_816062C + + thumb_func_start debug_sub_8160714 +debug_sub_8160714: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + add sp, sp, #0xfffffff0 + add r6, r0, #0 + mov r9, r1 + mov r7, #0x0 + mov r0, #0x0 + mov r8, r0 + mov r2, #0x0 + mov r5, #0x0 +._329: + add r4, r5, #1 + lsl r1, r4, #0x18 + lsr r1, r1, #0x18 + mov r0, r9 + str r2, [sp, #0xc] + bl GetPokeblockData + add r1, r0, #0 + lsl r0, r5, #0x1 + add r0, r0, sp + strh r1, [r0] + ldr r2, [sp, #0xc] + cmp r5, #0x5 + beq ._328 @cond_branch + lsl r0, r1, #0x10 + asr r1, r0, #0x10 + cmp r1, #0 + ble ._326 @cond_branch + add r0, r7, #1 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._326: + cmp r1, #0 + bge ._327 @cond_branch + mov r0, r8 + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r8, r0 +._327: + cmp r1, #0 + bne ._328 @cond_branch + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 +._328: + lsl r0, r4, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x5 + bls ._329 @cond_branch + mov r0, sp + mov r1, #0x0 + ldsh r0, [r0, r1] + cmp r0, #0x31 + bgt ._333 @cond_branch + mov r0, sp + ldrh r0, [r0, #0x2] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + cmp r0, #0x31 + bgt ._333 @cond_branch + mov r0, sp + mov r4, #0x4 + ldsh r0, [r0, r4] + cmp r0, #0x31 + bgt ._333 @cond_branch + mov r0, sp + mov r1, #0x6 + ldsh r0, [r0, r1] + cmp r0, #0x31 + bgt ._333 @cond_branch + mov r0, sp + mov r4, #0x8 + ldsh r0, [r0, r4] + cmp r0, #0x31 + ble ._334 @cond_branch +._333: + ldr r1, ._336 @ ContestStatsText_GoldPokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0xe + b ._400 +._337: + .align 2, 0 +._336: + .word ContestStatsText_GoldPokeBlock +._334: + cmp r7, #0x4 + bne ._338 @cond_branch + ldr r1, ._340 @ ContestStatsText_WhitePokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0xd + b ._400 +._341: + .align 2, 0 +._340: + .word ContestStatsText_WhitePokeBlock +._338: + mov r3, #0x0 + mov r5, #0x0 +._343: + lsl r0, r5, #0x1 + add r0, r0, sp + mov r1, #0x0 + ldsh r0, [r0, r1] + cmp r0, #0x2 + bne ._342 @cond_branch + add r0, r3, #1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 +._342: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x4 + bls ._343 @cond_branch + cmp r3, #0x3 + beq ._345 @cond_branch + cmp r2, #0x5 + beq ._345 @cond_branch + mov r4, r8 + cmp r4, #0x4 + bne ._346 @cond_branch +._345: + ldr r1, ._348 @ ContestStatsText_BlackPokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0xc + b ._400 +._349: + .align 2, 0 +._348: + .word ContestStatsText_BlackPokeBlock +._346: + cmp r7, #0x3 + bne ._350 @cond_branch + ldr r1, ._352 @ ContestStatsText_GrayPokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0xb + b ._400 +._353: + .align 2, 0 +._352: + .word ContestStatsText_GrayPokeBlock +._350: + cmp r7, #0x2 + beq ._354 @cond_branch + mov r0, r8 + cmp r0, #0x2 + bne ._377 @cond_branch +._354: + mov r3, #0x6 + mov r2, #0x0 + mov r5, #0x0 +._359: + lsl r0, r5, #0x1 + add r0, r0, sp + mov r1, #0x0 + ldsh r0, [r0, r1] + cmp r0, #0 + beq ._358 @cond_branch + cmp r3, #0x6 + bne ._357 @cond_branch + add r3, r5, #0 + b ._358 +._357: + add r2, r5, #0 +._358: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x4 + bls ._359 @cond_branch + lsl r0, r3, #0x1 + mov r4, sp + add r1, r4, r0 + lsl r0, r2, #0x1 + add r0, r0, sp + mov r4, #0x0 + ldsh r1, [r1, r4] + mov r4, #0x0 + ldsh r0, [r0, r4] + cmp r1, r0 + blt ._360 @cond_branch + add r2, r3, #0 +._360: + cmp r2, #0 + bne ._361 @cond_branch + ldr r1, ._363 @ ContestStatsText_PurplePokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0x6 + b ._400 +._364: + .align 2, 0 +._363: + .word ContestStatsText_PurplePokeBlock +._361: + cmp r2, #0x1 + bne ._365 @cond_branch + ldr r1, ._367 @ ContestStatsText_IndigoPokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0x7 + b ._400 +._368: + .align 2, 0 +._367: + .word ContestStatsText_IndigoPokeBlock +._365: + cmp r2, #0x2 + bne ._369 @cond_branch + ldr r1, ._371 @ ContestStatsText_BrownPokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0x8 + b ._400 +._372: + .align 2, 0 +._371: + .word ContestStatsText_BrownPokeBlock +._369: + cmp r2, #0x3 + bne ._373 @cond_branch + ldr r1, ._375 @ ContestStatsText_LiteBluePokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0x9 + b ._400 +._376: + .align 2, 0 +._375: + .word ContestStatsText_LiteBluePokeBlock +._373: + cmp r2, #0x4 + bne ._377 @cond_branch + ldr r1, ._379 @ ContestStatsText_OlivePokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0xa + b ._400 +._380: + .align 2, 0 +._379: + .word ContestStatsText_OlivePokeBlock +._377: + cmp r7, #0x1 + beq ._381 @cond_branch + mov r0, r8 + cmp r0, #0x1 + bne ._399 @cond_branch +._381: + mov r0, sp + mov r1, #0x0 + ldsh r0, [r0, r1] + cmp r0, #0 + beq ._383 @cond_branch + ldr r1, ._385 @ ContestStatsText_RedPokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0x1 + b ._400 +._386: + .align 2, 0 +._385: + .word ContestStatsText_RedPokeBlock +._383: + mov r0, sp + ldrh r0, [r0, #0x2] + cmp r0, #0 + beq ._387 @cond_branch + ldr r1, ._389 @ ContestStatsText_BluePokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0x2 + b ._400 +._390: + .align 2, 0 +._389: + .word ContestStatsText_BluePokeBlock +._387: + mov r0, sp + mov r4, #0x4 + ldsh r0, [r0, r4] + cmp r0, #0 + beq ._391 @cond_branch + ldr r1, ._393 @ ContestStatsText_PinkPokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0x3 + b ._400 +._394: + .align 2, 0 +._393: + .word ContestStatsText_PinkPokeBlock +._391: + mov r0, sp + mov r1, #0x6 + ldsh r0, [r0, r1] + cmp r0, #0 + beq ._395 @cond_branch + ldr r1, ._397 @ ContestStatsText_GreenPokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0x4 + b ._400 +._398: + .align 2, 0 +._397: + .word ContestStatsText_GreenPokeBlock +._395: + mov r0, sp + mov r4, #0x8 + ldsh r0, [r0, r4] + cmp r0, #0 + beq ._399 @cond_branch + ldr r1, ._401 @ ContestStatsText_YellowPokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0x5 + b ._400 +._402: + .align 2, 0 +._401: + .word ContestStatsText_YellowPokeBlock +._399: + ldr r1, ._403 @ gOtherText_FiveQuestions + add r0, r6, #0 + bl StringCopy + mov r0, #0x0 +._400: + add sp, sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._404: + .align 2, 0 +._403: + .word gOtherText_FiveQuestions + + thumb_func_end debug_sub_8160714 + + thumb_func_start debug_sub_816097C +debug_sub_816097C: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + add r7, r0, #0 + lsl r1, r1, #0x10 + lsr r5, r1, #0x10 + mov r6, #0x0 + mov r1, #0x0 +._405: + add r0, r7, r6 + strb r1, [r0] + add r0, r6, #1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x3 + bls ._405 @cond_branch + mov r0, #0xff + strb r0, [r7, #0x4] + lsl r0, r5, #0x10 + asr r0, r0, #0x10 + cmp r0, #0 + bne ._406 @cond_branch + mov r0, #0xa1 + strb r0, [r7, #0x3] + b ._414 +._406: + cmp r0, #0 + ble ._408 @cond_branch + mov r4, #0x64 + mov r0, #0x0 + mov r8, r0 + mov r6, #0x0 +._412: + lsl r5, r5, #0x10 + asr r0, r5, #0x10 + lsl r4, r4, #0x10 + asr r1, r4, #0x10 + bl __divsi3 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + mov r1, r8 + cmp r1, #0 + bne ._410 @cond_branch + cmp r6, #0x2 + beq ._410 @cond_branch + cmp r2, #0 + beq ._411 @cond_branch +._410: + add r1, r6, r7 + add r0, r2, #0 + sub r0, r0, #0x5f + strb r0, [r1, #0x1] + mov r0, #0x1 + mov r8, r0 +._411: + asr r0, r5, #0x10 + asr r4, r4, #0x10 + add r1, r4, #0 + bl __modsi3 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + add r0, r4, #0 + mov r1, #0xa + bl __divsi3 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r0, r6, #1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x2 + bls ._412 @cond_branch + b ._414 +._408: + cmp r0, #0 + bge ._414 @cond_branch + neg r0, r0 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + mov r4, #0x64 + mov r1, #0x0 + mov r8, r1 + mov r6, #0x0 +._419: + lsl r5, r5, #0x10 + asr r0, r5, #0x10 + lsl r4, r4, #0x10 + asr r1, r4, #0x10 + bl __divsi3 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + mov r1, r8 + lsl r0, r1, #0x10 + add r3, r0, #0 + cmp r3, #0 + bne ._416 @cond_branch + cmp r6, #0x2 + beq ._416 @cond_branch + cmp r2, #0 + beq ._417 @cond_branch +._416: + add r1, r6, r7 + add r0, r2, #0 + sub r0, r0, #0x5f + strb r0, [r1, #0x1] + cmp r3, #0 + bne ._418 @cond_branch + mov r0, #0xae + strb r0, [r1] +._418: + mov r0, #0x1 + mov r8, r0 +._417: + asr r0, r5, #0x10 + asr r4, r4, #0x10 + add r1, r4, #0 + bl __modsi3 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + add r0, r4, #0 + mov r1, #0xa + bl __divsi3 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r0, r6, #1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x2 + bls ._419 @cond_branch +._414: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_end debug_sub_816097C + + thumb_func_start debug_sub_8160A80 +debug_sub_8160A80: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + add r2, r0, #0 + ldr r1, ._422 @ _nakamuraStatic18 + cmp r0, #0 + bne ._420 @cond_branch + ldr r4, ._422 + 4 @ gStringVar1 + ldrb r1, [r1, #0x1] + add r0, r4, #0 + bl debug_sub_816097C + add r0, r4, #0 + mov r1, #0x8 + mov r2, #0x3 + bl Menu_PrintText + b ._440 +._423: + .align 2, 0 +._422: + .word _nakamuraStatic18 + .word gStringVar1 +._420: + cmp r0, #0x1 + bne ._424 @cond_branch + ldr r4, ._426 @ gStringVar1 + ldrb r1, [r1, #0x2] + add r0, r4, #0 + bl debug_sub_816097C + add r0, r4, #0 + mov r1, #0x8 + mov r2, #0x5 + bl Menu_PrintText + b ._440 +._427: + .align 2, 0 +._426: + .word gStringVar1 +._424: + cmp r0, #0x2 + bne ._428 @cond_branch + ldr r4, ._430 @ gStringVar1 + ldrb r1, [r1, #0x3] + add r0, r4, #0 + bl debug_sub_816097C + add r0, r4, #0 + mov r1, #0x8 + mov r2, #0x7 + bl Menu_PrintText + b ._440 +._431: + .align 2, 0 +._430: + .word gStringVar1 +._428: + cmp r0, #0x3 + bne ._432 @cond_branch + ldr r4, ._434 @ gStringVar1 + ldrb r1, [r1, #0x4] + add r0, r4, #0 + bl debug_sub_816097C + add r0, r4, #0 + mov r1, #0x8 + mov r2, #0x9 + bl Menu_PrintText + b ._440 +._435: + .align 2, 0 +._434: + .word gStringVar1 +._432: + cmp r0, #0x4 + bne ._436 @cond_branch + ldr r4, ._438 @ gStringVar1 + ldrb r1, [r1, #0x5] + add r0, r4, #0 + bl debug_sub_816097C + add r0, r4, #0 + mov r1, #0x8 + mov r2, #0xb + bl Menu_PrintText + b ._440 +._439: + .align 2, 0 +._438: + .word gStringVar1 +._436: + cmp r2, #0x5 + bne ._440 @cond_branch + ldr r4, ._441 @ gStringVar1 + ldrb r1, [r1, #0x6] + add r0, r4, #0 + bl debug_sub_816097C + add r0, r4, #0 + mov r1, #0x8 + mov r2, #0xd + bl Menu_PrintText +._440: + pop {r4} + pop {r0} + bx r0 +._442: + .align 2, 0 +._441: + .word gStringVar1 + + thumb_func_end debug_sub_8160A80 + + thumb_func_start debug_sub_8160B50 +debug_sub_8160B50: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + add r3, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r4, r1, #0 + ldr r2, ._445 @ _nakamuraStatic18 + cmp r0, #0 + bne ._443 @cond_branch + ldrb r0, [r2, #0x1] + add r0, r0, r1 + strb r0, [r2, #0x1] + b ._455 +._446: + .align 2, 0 +._445: + .word _nakamuraStatic18 +._443: + cmp r0, #0x1 + bne ._447 @cond_branch + ldrb r0, [r2, #0x2] + add r0, r0, r1 + strb r0, [r2, #0x2] + b ._455 +._447: + cmp r0, #0x2 + bne ._449 @cond_branch + ldrb r0, [r2, #0x3] + add r0, r0, r1 + strb r0, [r2, #0x3] + b ._455 +._449: + cmp r0, #0x3 + bne ._451 @cond_branch + ldrb r0, [r2, #0x4] + add r0, r0, r1 + strb r0, [r2, #0x4] + b ._455 +._451: + cmp r0, #0x4 + bne ._453 @cond_branch + ldrb r0, [r2, #0x5] + add r0, r0, r1 + strb r0, [r2, #0x5] + b ._455 +._453: + cmp r3, #0x5 + bne ._455 @cond_branch + ldrb r0, [r2, #0x6] + add r0, r0, r4 + strb r0, [r2, #0x6] +._455: + pop {r4} + pop {r0} + bx r0 + + thumb_func_end debug_sub_8160B50 + + thumb_func_start debug_sub_8160BB0 +debug_sub_8160BB0: + push {r4, r5, lr} + ldr r5, ._456 @ gStringVar1 + ldr r4, ._456 + 4 @ _nakamuraStatic18 + add r0, r5, #0 + add r1, r4, #0 + bl debug_sub_8160714 + strb r0, [r4] + mov r0, #0x1 + mov r1, #0x1 + mov r2, #0x8 + mov r3, #0x2 + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + pop {r4, r5} + pop {r0} + bx r0 +._457: + .align 2, 0 +._456: + .word gStringVar1 + .word _nakamuraStatic18 + + thumb_func_end debug_sub_8160BB0 + + thumb_func_start debug_sub_8160BE4 +debug_sub_8160BE4: + push {r4, lr} + add sp, sp, #0xfffffff8 + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xc + mov r3, #0xf + bl Menu_DrawStdWindowFrame + bl debug_sub_8160BB0 + ldr r0, ._459 @ gContestStatsText_Spicy + mov r1, #0x2 + mov r2, #0x3 + bl Menu_PrintText + ldr r0, ._459 + 4 @ gContestStatsText_Dry + mov r1, #0x2 + mov r2, #0x5 + bl Menu_PrintText + ldr r0, ._459 + 8 @ gContestStatsText_Sweet + mov r1, #0x2 + mov r2, #0x7 + bl Menu_PrintText + ldr r0, ._459 + 12 @ gContestStatsText_Bitter + mov r1, #0x2 + mov r2, #0x9 + bl Menu_PrintText + ldr r0, ._459 + 16 @ gContestStatsText_Sour + mov r1, #0x2 + mov r2, #0xb + bl Menu_PrintText + ldr r0, ._459 + 20 @ gContestStatsText_Tasty + mov r1, #0x2 + mov r2, #0xd + bl Menu_PrintText + mov r4, #0x0 +._458: + add r0, r4, #0 + bl debug_sub_8160A80 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x5 + bls ._458 @cond_branch + mov r0, #0x0 + str r0, [sp] + mov r0, #0xb + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x3 + mov r3, #0x6 + bl InitMenu + add sp, sp, #0x8 + pop {r4} + pop {r0} + bx r0 +._460: + .align 2, 0 +._459: + .word gContestStatsText_Spicy + .word gContestStatsText_Dry + .word gContestStatsText_Sweet + .word gContestStatsText_Bitter + .word gContestStatsText_Sour + .word gContestStatsText_Tasty + + thumb_func_end debug_sub_8160BE4 + + thumb_func_start debug_sub_8160C7C +debug_sub_8160C7C: + push {r4, lr} + ldr r2, ._469 @ _nakamuraStatic18 + mov r1, #0x0 + ldrb r0, [r2] + cmp r0, #0xc + bne ._467 @cond_branch + ldrb r0, [r2, #0x1] + cmp r0, #0x2 + bne ._462 @cond_branch + mov r1, #0x1 +._462: + ldrb r0, [r2, #0x3] + cmp r0, #0x2 + bne ._463 @cond_branch + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 +._463: + ldrb r0, [r2, #0x4] + cmp r0, #0x2 + bne ._464 @cond_branch + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 +._464: + ldrb r0, [r2, #0x2] + cmp r0, #0x2 + bne ._465 @cond_branch + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 +._465: + ldrb r0, [r2, #0x5] + cmp r0, #0x2 + bne ._466 @cond_branch + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 +._466: + cmp r1, #0x3 + beq ._467 @cond_branch + mov r0, #0x2 + strb r0, [r2, #0x1] + strb r0, [r2, #0x3] + strb r0, [r2, #0x4] +._467: + add r0, r2, #0 + bl sub_810CA34 + bl debug_sub_8160BB0 + mov r4, #0x0 +._468: + add r0, r4, #0 + bl debug_sub_8160A80 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x5 + bls ._468 @cond_branch + pop {r4} + pop {r0} + bx r0 +._470: + .align 2, 0 +._469: + .word _nakamuraStatic18 + + thumb_func_end debug_sub_8160C7C + + thumb_func_start debug_sub_8160CF4 +debug_sub_8160CF4: + push {lr} + ldr r2, ._473 @ gMain + ldrh r1, [r2, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._471 @cond_branch + mov r0, #0x1 + neg r0, r0 + b ._472 +._474: + .align 2, 0 +._473: + .word gMain +._471: + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._475 @cond_branch + mov r0, #0x1 +._472: + bl Menu_MoveCursor + mov r0, #0x0 + b ._484 +._475: + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._477 @cond_branch + bl Menu_GetCursorPos + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x1 + neg r1, r1 + b ._478 +._477: + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._479 @cond_branch + bl Menu_GetCursorPos + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x1 +._478: + bl debug_sub_8160B50 + bl Menu_GetCursorPos + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl debug_sub_8160A80 + bl debug_sub_8160BB0 + mov r0, #0x0 + b ._484 +._479: + ldrh r1, [r2, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._481 @cond_branch + bl debug_sub_8160C7C + mov r0, #0x5 + bl PlaySE + mov r0, #0x0 + b ._484 +._481: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + bne ._483 @cond_branch + mov r0, #0x0 + b ._484 +._483: + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + bl CloseMenu + mov r0, #0x1 +._484: + pop {r1} + bx r1 + + thumb_func_end debug_sub_8160CF4 + + thumb_func_start debug_sub_8160D98 +debug_sub_8160D98: + push {lr} + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + bl debug_sub_8160BE4 + ldr r1, ._485 @ gMenuCallback + ldr r0, ._485 + 4 @ debug_sub_8160CF4 + str r0, [r1] + mov r0, #0x0 + pop {r1} + bx r1 +._486: + .align 2, 0 +._485: + .word gMenuCallback + .word debug_sub_8160CF4+1 + + thumb_func_end debug_sub_8160D98 + + thumb_func_start debug_sub_8160DC0 +debug_sub_8160DC0: + push {lr} + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x16 + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r0, ._487 @ gOtherText_Slash + mov r1, #0xb + mov r2, #0x1 + bl Menu_PrintText + ldr r0, ._487 + 4 @ Str_843E5F2 + mov r1, #0x2 + mov r2, #0x3 + bl Menu_PrintText + ldr r0, ._487 + 8 @ Str_843E5FB + mov r1, #0x2 + mov r2, #0x5 + bl Menu_PrintText + ldr r0, ._487 + 12 @ Str_843E606 + mov r1, #0x2 + mov r2, #0x7 + bl Menu_PrintText + ldr r0, ._487 + 16 @ Str_843E611 + mov r1, #0x2 + mov r2, #0x9 + bl Menu_PrintText + ldr r0, ._487 + 20 @ Str_843E61C + mov r1, #0x2 + mov r2, #0xb + bl Menu_PrintText + ldr r0, ._487 + 24 @ Str_843E627 + mov r1, #0x2 + mov r2, #0xd + bl Menu_PrintText + ldr r0, ._487 + 28 @ Str_843E637 + mov r1, #0x2 + mov r2, #0xf + bl Menu_PrintText + ldr r0, ._487 + 32 @ Str_843E632 + mov r1, #0x2 + mov r2, #0x11 + bl Menu_PrintText + pop {r0} + bx r0 +._488: + .align 2, 0 +._487: + .word gOtherText_Slash + .word Str_843E5F2 + .word Str_843E5FB + .word Str_843E606 + .word Str_843E611 + .word Str_843E61C + .word Str_843E627 + .word Str_843E637 + .word Str_843E632 + + thumb_func_end debug_sub_8160DC0 + + thumb_func_start debug_sub_8160E50 +debug_sub_8160E50: + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r0, #0x1 + mov r1, #0x1 + mov r2, #0xa + mov r3, #0x2 + bl Menu_BlankWindowRect + ldr r5, ._489 @ gStringVar1 + add r0, r6, #0 + mov r1, #0x2 + add r2, r5, #0 + bl GetMonData + add r0, r5, #0 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + mov r0, #0xc + mov r1, #0x1 + mov r2, #0x15 + mov r3, #0x2 + bl Menu_BlankWindowRect + add r0, r6, #0 + mov r1, #0xb + bl GetMonData + mov r1, #0xb + mul r0, r0, r1 + ldr r1, ._489 + 4 @ gSpeciesNames + add r0, r0, r1 + mov r1, #0xc + mov r2, #0x1 + bl Menu_PrintText + add r0, r6, #0 + mov r1, #0x1a + bl GetMonData + add r4, r0, #0 + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + add r0, r5, #0 + add r1, r4, #0 + mov r2, #0x0 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + mov r0, #0xd + mov r1, #0x3 + mov r2, #0x11 + mov r3, #0x4 + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0xd + mov r2, #0x3 + bl Menu_PrintText + add r0, r6, #0 + mov r1, #0x1b + bl GetMonData + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r4, r4, r1 + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + mov r0, #0xd + mov r1, #0x5 + mov r2, #0x11 + mov r3, #0x6 + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0xd + mov r2, #0x5 + bl Menu_PrintText + add r0, r6, #0 + mov r1, #0x1c + bl GetMonData + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r4, r4, r1 + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + mov r0, #0xd + mov r1, #0x7 + mov r2, #0x11 + mov r3, #0x8 + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0xd + mov r2, #0x7 + bl Menu_PrintText + add r0, r6, #0 + mov r1, #0x1d + bl GetMonData + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r4, r4, r1 + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + mov r0, #0xd + mov r1, #0x9 + mov r2, #0x11 + mov r3, #0xa + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0xd + mov r2, #0x9 + bl Menu_PrintText + add r0, r6, #0 + mov r1, #0x1e + bl GetMonData + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r4, r4, r1 + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + mov r0, #0xd + mov r1, #0xb + mov r2, #0x11 + mov r3, #0xc + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0xd + mov r2, #0xb + bl Menu_PrintText + add r0, r6, #0 + mov r1, #0x1f + bl GetMonData + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r4, r4, r1 + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + mov r0, #0xd + mov r1, #0xd + mov r2, #0x11 + mov r3, #0xe + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0xd + mov r2, #0xd + bl Menu_PrintText + add r0, r5, #0 + add r1, r4, #0 + mov r2, #0x0 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + mov r0, #0xd + mov r1, #0xf + mov r2, #0x11 + mov r3, #0x10 + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0xd + mov r2, #0xf + bl Menu_PrintText + add r0, r6, #0 + mov r1, #0x20 + bl GetMonData + add r1, r0, #0 + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + mov r0, #0xd + mov r1, #0x11 + mov r2, #0x11 + mov r3, #0x12 + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0xd + mov r2, #0x11 + bl Menu_PrintText + pop {r4, r5, r6} + pop {r0} + bx r0 +._490: + .align 2, 0 +._489: + .word gStringVar1 + .word gSpeciesNames + + thumb_func_end debug_sub_8160E50 + + thumb_func_start debug_sub_8161028 +debug_sub_8161028: + push {r4, r5, r6, lr} + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + bne ._491 @cond_branch + ldr r0, ._496 @ _nakamuraData5 + ldrb r0, [r0] + cmp r0, #0 + bne ._492 @cond_branch + mov r5, #0x5 +._494: + lsl r0, r5, #0x10 + asr r4, r0, #0x10 + mov r0, #0x64 + mul r0, r0, r4 + ldr r1, ._496 + 4 @ gPlayerParty + add r0, r0, r1 + mov r1, #0xb + bl GetMonData + cmp r0, #0 + bne ._493 @cond_branch + sub r0, r4, #1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r0, #0 + bge ._494 @cond_branch +._492: + ldr r1, ._496 @ _nakamuraData5 + ldrb r0, [r1] + add r0, r0, r6 + strb r0, [r1] + b ._506 +._497: + .align 2, 0 +._496: + .word _nakamuraData5 + .word gPlayerParty +._491: + cmp r1, #0x1 + bne ._506 @cond_branch + ldr r4, ._501 @ _nakamuraData5 + ldrb r0, [r4] + add r0, r0, r6 + strb r0, [r4] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x6 + bne ._499 @cond_branch + mov r0, #0x0 + b ._500 +._502: + .align 2, 0 +._501: + .word _nakamuraData5 +._493: + ldr r0, ._504 @ _nakamuraData5 + strb r5, [r0] + b ._506 +._505: + .align 2, 0 +._504: + .word _nakamuraData5 +._499: + ldrb r1, [r4] + mov r0, #0x64 + mul r0, r0, r1 + ldr r1, ._507 @ gPlayerParty + add r0, r0, r1 + mov r1, #0xb + bl GetMonData + cmp r0, #0 + bne ._506 @cond_branch +._500: + strb r0, [r4] +._506: + pop {r4, r5, r6} + pop {r0} + bx r0 +._508: + .align 2, 0 +._507: + .word gPlayerParty + + thumb_func_end debug_sub_8161028 + + thumb_func_start debug_sub_81610BC +debug_sub_81610BC: + push {lr} + ldr r0, ._511 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._509 @cond_branch + mov r0, #0x1 + neg r0, r0 + b ._510 +._512: + .align 2, 0 +._511: + .word gMain +._509: + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._513 @cond_branch + mov r0, #0x1 +._510: + bl debug_sub_8161028 + ldr r0, ._515 @ _nakamuraData5 + ldrb r1, [r0] + mov r0, #0x64 + mul r0, r0, r1 + ldr r1, ._515 + 4 @ gPlayerParty + add r0, r0, r1 + bl debug_sub_8160E50 + mov r0, #0x0 + b ._518 +._516: + .align 2, 0 +._515: + .word _nakamuraData5 + .word gPlayerParty +._513: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + bne ._517 @cond_branch + mov r0, #0x0 + b ._518 +._517: + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + bl CloseMenu + mov r0, #0x1 +._518: + pop {r1} + bx r1 + + thumb_func_end debug_sub_81610BC + + thumb_func_start DebugMenu_EffortValues +DebugMenu_EffortValues: + push {lr} + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + ldr r1, ._519 @ _nakamuraData5 + mov r0, #0x0 + strb r0, [r1] + bl debug_sub_8160DC0 + ldr r0, ._519 + 4 @ gPlayerParty + bl debug_sub_8160E50 + ldr r1, ._519 + 8 @ gMenuCallback + ldr r0, ._519 + 12 @ debug_sub_81610BC + str r0, [r1] + mov r0, #0x0 + pop {r1} + bx r1 +._520: + .align 2, 0 +._519: + .word _nakamuraData5 + .word gPlayerParty + .word gMenuCallback + .word debug_sub_81610BC+1 + + thumb_func_end DebugMenu_EffortValues + + thumb_func_start debug_sub_8161160 +debug_sub_8161160: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r7, #0x0 + ldr r2, ._523 @ _nakamuraData6 + ldr r1, ._523 + 4 @ _nakamuraData8 + ldrh r0, [r2] + ldrh r3, [r1] + cmp r0, r3 + bhi ._521 @cond_branch + add r6, r0, #0 + ldrh r5, [r1] + b ._522 +._524: + .align 2, 0 +._523: + .word _nakamuraData6 + .word _nakamuraData8 +._521: + ldrh r6, [r1] + ldrh r5, [r2] +._522: + mov r4, #0x0 + ldr r0, ._529 @ _nakamuraDataA + ldrh r0, [r0] + cmp r4, r0 + bcs ._525 @cond_branch + ldr r0, ._529 + 4 @ _nakamuraDataC + mov r8, r0 +._528: + bl Random + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r2, r8 + ldrh r1, [r2] + bl __umodsi3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, r6 + bcc ._527 @cond_branch + cmp r0, r5 + bhi ._527 @cond_branch + add r0, r7, #1 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 +._527: + add r4, r4, #0x1 + ldr r0, ._529 @ _nakamuraDataA + ldrh r0, [r0] + cmp r4, r0 + bcc ._528 @cond_branch +._525: + add r0, r7, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._530: + .align 2, 0 +._529: + .word _nakamuraDataA + .word _nakamuraDataC + + thumb_func_end debug_sub_8161160 + + thumb_func_start debug_sub_81611D8 +debug_sub_81611D8: + push {r4, lr} + add sp, sp, #0xfffffff8 + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xf + mov r3, #0xb + bl Menu_DrawStdWindowFrame + ldr r0, ._531 @ Str_843E642 + mov r1, #0x2 + mov r2, #0x1 + bl Menu_PrintText + ldr r0, ._531 + 4 @ Str_843E647 + mov r1, #0x2 + mov r2, #0x3 + bl Menu_PrintText + ldr r0, ._531 + 8 @ Str_843E65A + mov r1, #0x2 + mov r2, #0x5 + bl Menu_PrintText + ldr r0, ._531 + 12 @ Str_843E64C + mov r1, #0x2 + mov r2, #0x7 + bl Menu_PrintText + ldr r0, ._531 + 16 @ Str_843E651 + mov r1, #0x2 + mov r2, #0x9 + bl Menu_PrintText + ldr r0, ._531 + 20 @ Str_843E655 + mov r1, #0xd + mov r2, #0x9 + bl Menu_PrintText + ldr r4, ._531 + 24 @ Str_843E658 + add r0, r4, #0 + mov r1, #0xc + mov r2, #0x1 + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0xc + mov r2, #0x3 + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0xc + mov r2, #0x5 + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0xc + mov r2, #0x7 + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0xc + mov r2, #0x9 + bl Menu_PrintText + mov r0, #0x0 + str r0, [sp] + mov r0, #0xe + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x4 + bl InitMenu + add sp, sp, #0x8 + pop {r4} + pop {r0} + bx r0 +._532: + .align 2, 0 +._531: + .word Str_843E642 + .word Str_843E647 + .word Str_843E65A + .word Str_843E64C + .word Str_843E651 + .word Str_843E655 + .word Str_843E658 + + thumb_func_end debug_sub_81611D8 + + thumb_func_start debug_sub_8161290 +debug_sub_8161290: + push {r4, lr} + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + ldr r4, ._533 @ gStringVar1 + add r0, r4, #0 + mov r2, #0x1 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r4, #0 + mov r1, #0x8 + mov r2, #0x9 + bl Menu_PrintText + pop {r4} + pop {r0} + bx r0 +._534: + .align 2, 0 +._533: + .word gStringVar1 + + thumb_func_end debug_sub_8161290 + + thumb_func_start debug_sub_81612B8 +debug_sub_81612B8: + push {r4, r5, lr} + add r4, r2, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + ldrh r2, [r0] + add r1, r1, r2 + strh r1, [r0] + ldr r5, ._535 @ gStringVar1 + ldrh r1, [r0] + add r0, r5, #0 + mov r2, #0x1 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r5, #0 + mov r1, #0x8 + add r2, r4, #0 + bl Menu_PrintText + pop {r4, r5} + pop {r0} + bx r0 +._536: + .align 2, 0 +._535: + .word gStringVar1 + + thumb_func_end debug_sub_81612B8 + + thumb_func_start debug_sub_81612EC +debug_sub_81612EC: + push {r4, r5, lr} + ldr r2, ._540 @ gMain + ldrh r1, [r2, #0x2c] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + mov r5, #0x1 + cmp r0, #0 + beq ._537 @cond_branch + mov r5, #0x64 +._537: + ldrh r1, [r2, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._538 @cond_branch + mov r0, #0x1 + neg r0, r0 + b ._539 +._541: + .align 2, 0 +._540: + .word gMain +._538: + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._542 @cond_branch + mov r0, #0x1 +._539: + bl Menu_MoveCursor +._565: + mov r0, #0x0 + b ._543 +._542: + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._544 @cond_branch + bl Menu_GetCursorPos + lsl r0, r0, #0x18 + asr r4, r0, #0x18 + cmp r4, #0 + bne ._545 @cond_branch + ldr r0, ._550 @ _nakamuraData6 + neg r1, r5 + mov r2, #0x1 + bl debug_sub_81612B8 +._545: + cmp r4, #0x1 + bne ._546 @cond_branch + ldr r0, ._550 + 4 @ _nakamuraData8 + neg r1, r5 + mov r2, #0x3 + bl debug_sub_81612B8 +._546: + cmp r4, #0x2 + bne ._547 @cond_branch + ldr r0, ._550 + 8 @ _nakamuraDataC + neg r1, r5 + mov r2, #0x5 + bl debug_sub_81612B8 +._547: + cmp r4, #0x3 + bne ._565 @cond_branch + ldr r0, ._550 + 12 @ _nakamuraDataA + neg r1, r5 + mov r2, #0x7 + bl debug_sub_81612B8 + b ._565 +._551: + .align 2, 0 +._550: + .word _nakamuraData6 + .word _nakamuraData8 + .word _nakamuraDataC + .word _nakamuraDataA +._544: + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._552 @cond_branch + bl Menu_GetCursorPos + lsl r0, r0, #0x18 + asr r4, r0, #0x18 + cmp r4, #0 + bne ._553 @cond_branch + ldr r0, ._558 @ _nakamuraData6 + add r1, r5, #0 + mov r2, #0x1 + bl debug_sub_81612B8 +._553: + cmp r4, #0x1 + bne ._554 @cond_branch + ldr r0, ._558 + 4 @ _nakamuraData8 + add r1, r5, #0 + mov r2, #0x3 + bl debug_sub_81612B8 +._554: + cmp r4, #0x2 + bne ._555 @cond_branch + ldr r0, ._558 + 8 @ _nakamuraDataC + add r1, r5, #0 + mov r2, #0x5 + bl debug_sub_81612B8 +._555: + cmp r4, #0x3 + bne ._565 @cond_branch + ldr r0, ._558 + 12 @ _nakamuraDataA + add r1, r5, #0 + mov r2, #0x7 + bl debug_sub_81612B8 + b ._565 +._559: + .align 2, 0 +._558: + .word _nakamuraData6 + .word _nakamuraData8 + .word _nakamuraDataC + .word _nakamuraDataA +._552: + ldrh r1, [r2, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._560 @cond_branch + ldr r0, ._563 @ _nakamuraDataC + ldrh r0, [r0] + cmp r0, #0 + beq ._565 @cond_branch + mov r0, #0x5 + bl PlaySE + bl debug_sub_8161160 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl debug_sub_8161290 + b ._565 +._564: + .align 2, 0 +._563: + .word _nakamuraDataC +._560: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._565 @cond_branch + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + bl CloseMenu + mov r0, #0x1 +._543: + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_end debug_sub_81612EC + + thumb_func_start DebugMenu_RandomNumberTest +DebugMenu_RandomNumberTest: + push {lr} + ldr r0, ._566 @ _nakamuraData6 + mov r1, #0x0 + strh r1, [r0] + ldr r0, ._566 + 4 @ _nakamuraData8 + strh r1, [r0] + ldr r0, ._566 + 8 @ _nakamuraDataC + strh r1, [r0] + ldr r0, ._566 + 12 @ _nakamuraDataA + strh r1, [r0] + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + bl debug_sub_81611D8 + ldr r1, ._566 + 16 @ gMenuCallback + ldr r0, ._566 + 20 @ debug_sub_81612EC + str r0, [r1] + mov r0, #0x0 + pop {r1} + bx r1 +._567: + .align 2, 0 +._566: + .word _nakamuraData6 + .word _nakamuraData8 + .word _nakamuraDataC + .word _nakamuraDataA + .word gMenuCallback + .word debug_sub_81612EC+1 + + thumb_func_end DebugMenu_RandomNumberTest + + .align 2, 0 + +.endif diff --git a/asm/nohara_debug_menu.s b/asm/nohara_debug_menu.s new file mode 100644 index 000000000..1bc077b90 --- /dev/null +++ b/asm/nohara_debug_menu.s @@ -0,0 +1,2198 @@ +.if DEBUG + + .include "constants/gba_constants.inc" + .include "include/macros.inc" + + .text + + thumb_func_start InitNoharaDebugMenu +InitNoharaDebugMenu: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x13 + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._1 @ gUnknown_Debug_083C4938 + mov r0, #0x1 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x12 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._1 + 4 @ gMenuCallback + ldr r0, ._1 + 8 @ debug_sub_808F414 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._2: + .align 2, 0 +._1: + .word gUnknown_Debug_083C4938 + .word gMenuCallback + .word debug_sub_808F414+1 + + thumb_func_end InitNoharaDebugMenu + + thumb_func_start debug_sub_808F414 +debug_sub_808F414: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + beq ._3 @cond_branch + add r0, r0, #0x1 + cmp r1, r0 + beq ._4 @cond_branch + ldr r2, ._6 @ gMenuCallback + ldr r0, ._6 + 4 @ gUnknown_Debug_083C4938 + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + str r0, [r2] +._3: + mov r0, #0x0 + b ._5 +._7: + .align 2, 0 +._6: + .word gMenuCallback + .word gUnknown_Debug_083C4938 +._4: + bl CloseMenu + mov r0, #0x1 +._5: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808F414 + + thumb_func_start NoharaDebugMenu_TV +NoharaDebugMenu_TV: + push {lr} + add sp, sp, #0xfffffff8 + ldr r1, ._8 @ gDebug_03000726 + mov r0, #0x0 + strb r0, [r1] + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xa + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._8 + 4 @ gUnknown_Debug_083C4B8C + mov r0, #0x1 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x9 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._8 + 8 @ gMenuCallback + ldr r0, ._8 + 12 @ debug_sub_808F4AC + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._9: + .align 2, 0 +._8: + .word gDebug_03000726 + .word gUnknown_Debug_083C4B8C + .word gMenuCallback + .word debug_sub_808F4AC+1 + + thumb_func_end NoharaDebugMenu_TV + + thumb_func_start debug_sub_808F4AC +debug_sub_808F4AC: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + beq ._10 @cond_branch + add r0, r0, #0x1 + cmp r1, r0 + beq ._11 @cond_branch + ldr r2, ._13 @ gMenuCallback + ldr r0, ._13 + 4 @ gUnknown_Debug_083C4B8C + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + str r0, [r2] +._10: + mov r0, #0x0 + b ._12 +._14: + .align 2, 0 +._13: + .word gMenuCallback + .word gUnknown_Debug_083C4B8C +._11: + bl CloseMenu + mov r0, #0x1 +._12: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808F4AC + + thumb_func_start debug_sub_808F4EC +debug_sub_808F4EC: + push {lr} + bl debug_sub_808F6BC + ldr r0, ._15 @ gUnknown_Debug_083C4980 + bl sub_8071F40 + mov r0, #0x3 + mov r1, #0x3 + mov r2, #0x1 + bl DisplayYesNoMenu + ldr r1, ._15 + 4 @ gMenuCallback + ldr r0, ._15 + 8 @ debug_sub_808F648 + str r0, [r1] + pop {r0} + bx r0 +._16: + .align 2, 0 +._15: + .word gUnknown_Debug_083C4980 + .word gMenuCallback + .word debug_sub_808F648+1 + + thumb_func_end debug_sub_808F4EC + + thumb_func_start debug_sub_808F518 +debug_sub_808F518: + push {r4, lr} + mov r2, #0x0 + ldr r4, ._20 @ gSaveBlock1 + ldr r3, ._20 + 4 @ 0x2738 +._19: + lsl r0, r2, #0x3 + add r0, r0, r2 + lsl r0, r0, #0x2 + add r1, r0, r4 + add r0, r1, r3 + ldrb r0, [r0] + sub r0, r0, #0x15 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x13 + bhi ._18 @cond_branch + ldr r0, ._20 + 8 @ 0x2739 + add r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + bne ._18 @cond_branch + mov r0, #0x1 + strb r0, [r1] +._18: + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x17 + bls ._19 @cond_branch + pop {r4} + pop {r0} + bx r0 +._21: + .align 2, 0 +._20: + .word gSaveBlock1 + .word 0x2738 + .word 0x2739 + + thumb_func_end debug_sub_808F518 + + thumb_func_start debug_sub_808F560 +debug_sub_808F560: + push {r4, lr} + mov r1, #0x0 + ldr r4, ._23 @ gSaveBlock1 + ldr r3, ._23 + 4 @ 0x2739 + mov r2, #0x0 +._22: + lsl r0, r1, #0x3 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r4 + add r0, r0, r3 + strb r2, [r0] + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + cmp r1, #0x17 + bls ._22 @cond_branch + bl CloseMenu + mov r0, #0x1 + pop {r4} + pop {r1} + bx r1 +._24: + .align 2, 0 +._23: + .word gSaveBlock1 + .word 0x2739 + + thumb_func_end debug_sub_808F560 + + thumb_func_start debug_sub_808F594 +debug_sub_808F594: + push {r4, r5, r6, lr} + mov r2, #0x0 + ldr r6, ._27 @ gSaveBlock1 + ldr r5, ._27 + 4 @ 0x2738 + ldr r4, ._27 + 8 @ 0x2739 + mov r3, #0x1 +._26: + lsl r0, r2, #0x3 + add r0, r0, r2 + lsl r0, r0, #0x2 + add r1, r0, r6 + add r0, r1, r5 + ldrb r0, [r0] + cmp r0, #0 + beq ._25 @cond_branch + add r0, r1, r4 + strb r3, [r0] +._25: + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x17 + bls ._26 @cond_branch + bl CloseMenu + mov r0, #0x1 + pop {r4, r5, r6} + pop {r1} + bx r1 +._28: + .align 2, 0 +._27: + .word gSaveBlock1 + .word 0x2738 + .word 0x2739 + + thumb_func_end debug_sub_808F594 + + thumb_func_start debug_sub_808F5D8 +debug_sub_808F5D8: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r4, #0x0 + ldr r6, ._30 @ gStringVar1 + ldr r7, ._30 + 4 @ gUnknown_Debug_083C4BD4 + add r0, r7, #1 + mov r8, r0 +._29: + ldr r5, ._30 + 8 @ gSpecialVar_0x8004 + strh r4, [r5] + bl GetSlotMachineId + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r6, #0 + mov r2, #0x0 + mov r3, #0x1 + bl ConvertIntToDecimalStringN + lsl r0, r4, #0x1 + add r0, r0, r4 + lsl r0, r0, #0x2 + add r1, r0, r7 + ldrb r1, [r1] + add r0, r0, r8 + ldrb r2, [r0] + add r0, r6, #0 + bl Menu_PrintText + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0xb + bls ._29 @cond_branch + mov r0, #0x0 + strh r0, [r5] + ldr r1, ._30 + 12 @ gMenuCallback + ldr r0, ._30 + 16 @ debug_sub_8090278 + str r0, [r1] + mov r0, #0x0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._31: + .align 2, 0 +._30: + .word gStringVar1 + .word gUnknown_Debug_083C4BD4 + .word gSpecialVar_0x8004 + .word gMenuCallback + .word debug_sub_8090278+1 + + thumb_func_end debug_sub_808F5D8 + + thumb_func_start debug_sub_808F648 +debug_sub_808F648: + push {lr} + ldr r0, ._35 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._32 @cond_branch + mov r0, #0xa + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xd + bl Menu_EraseWindowRect + ldr r0, ._35 + 4 @ gDebug_03000726 + ldrb r1, [r0] + mov r2, #0x1 + eor r1, r1, r2 + strb r1, [r0] + cmp r1, #0 + beq ._33 @cond_branch + bl debug_sub_808F7B4 + b ._40 +._36: + .align 2, 0 +._35: + .word gMain + .word gDebug_03000726 +._33: + bl debug_sub_808F6BC + b ._40 +._32: + bl Menu_ProcessInputNoWrap_ + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + beq ._43 @cond_branch + cmp r1, r0 + bgt ._39 @cond_branch + sub r0, r0, #0x1 + cmp r1, r0 + beq ._40 @cond_branch + b ._43 +._39: + cmp r1, #0 + beq ._42 @cond_branch + b ._43 +._40: + mov r0, #0x0 + b ._44 +._42: + bl debug_sub_808F518 +._43: + bl CloseMenu + mov r0, #0x1 +._44: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808F648 + + thumb_func_start debug_sub_808F6BC +debug_sub_808F6BC: + push {r4, r5, r6, lr} + mov r4, #0x0 + ldr r5, ._48 @ gStringVar1 + ldr r6, ._48 + 4 @ gSaveBlock1 +._45: + lsl r0, r4, #0x3 + add r0, r0, r4 + lsl r0, r0, #0x2 + add r0, r0, r6 + ldr r1, ._48 + 8 @ 0x2738 + add r0, r0, r1 + ldrb r1, [r0] + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + lsl r1, r4, #0x19 + mov r0, #0xa0 + lsl r0, r0, #0x14 + add r1, r1, r0 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0x0 + bl Menu_PrintText + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x4 + bls ._45 @cond_branch + mov r4, #0x5 + ldr r5, ._48 @ gStringVar1 + ldr r6, ._48 + 4 @ gSaveBlock1 +._50: + lsl r0, r4, #0x3 + add r0, r0, r4 + lsl r0, r0, #0x2 + add r0, r0, r6 + ldr r1, ._48 + 8 @ 0x2738 + add r0, r0, r1 + ldrb r1, [r0] + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + cmp r4, #0xe + bhi ._46 @cond_branch + lsl r1, r4, #0x19 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0x3 + bl Menu_PrintText + b ._47 +._49: + .align 2, 0 +._48: + .word gStringVar1 + .word gSaveBlock1 + .word 0x2738 +._46: + lsl r1, r4, #0x19 + mov r0, #0xec + lsl r0, r0, #0x18 + add r1, r1, r0 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0x6 + bl Menu_PrintText +._47: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x17 + bls ._50 @cond_branch + mov r4, #0x0 + ldr r5, ._53 @ gStringVar1 +._55: + ldr r0, ._53 + 4 @ gSaveBlock1 + lsl r1, r4, #0x2 + add r1, r1, r0 + ldr r0, ._53 + 8 @ 0x2abc + add r1, r1, r0 + ldrb r1, [r1] + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + cmp r4, #0x7 + bhi ._51 @cond_branch + lsl r1, r4, #0x19 + mov r0, #0xa0 + lsl r0, r0, #0x14 + add r1, r1, r0 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0x9 + bl Menu_PrintText + b ._52 +._54: + .align 2, 0 +._53: + .word gStringVar1 + .word gSaveBlock1 + .word 0x2abc +._51: + lsl r1, r4, #0x19 + mov r0, #0xfa + lsl r0, r0, #0x18 + add r1, r1, r0 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0xc + bl Menu_PrintText +._52: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0xf + bls ._55 @cond_branch + pop {r4, r5, r6} + pop {r0} + bx r0 + + thumb_func_end debug_sub_808F6BC + + thumb_func_start debug_sub_808F7B4 +debug_sub_808F7B4: + push {r4, r5, r6, lr} + mov r4, #0x0 + ldr r5, ._59 @ gStringVar1 + ldr r6, ._59 + 4 @ gSaveBlock1 +._56: + lsl r0, r4, #0x3 + add r0, r0, r4 + lsl r0, r0, #0x2 + add r0, r0, r6 + ldr r1, ._59 + 8 @ 0x2739 + add r0, r0, r1 + ldrb r1, [r0] + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + lsl r1, r4, #0x19 + mov r0, #0xa0 + lsl r0, r0, #0x14 + add r1, r1, r0 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0x0 + bl Menu_PrintText + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x4 + bls ._56 @cond_branch + mov r4, #0x5 + ldr r5, ._59 @ gStringVar1 + ldr r6, ._59 + 4 @ gSaveBlock1 +._61: + lsl r0, r4, #0x3 + add r0, r0, r4 + lsl r0, r0, #0x2 + add r0, r0, r6 + ldr r1, ._59 + 8 @ 0x2739 + add r0, r0, r1 + ldrb r1, [r0] + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + cmp r4, #0xe + bhi ._57 @cond_branch + lsl r1, r4, #0x19 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0x3 + bl Menu_PrintText + b ._58 +._60: + .align 2, 0 +._59: + .word gStringVar1 + .word gSaveBlock1 + .word 0x2739 +._57: + lsl r1, r4, #0x19 + mov r0, #0xec + lsl r0, r0, #0x18 + add r1, r1, r0 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0x6 + bl Menu_PrintText +._58: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x17 + bls ._61 @cond_branch + mov r4, #0x0 + ldr r5, ._64 @ gStringVar1 +._66: + ldr r0, ._64 + 4 @ gSaveBlock1 + lsl r1, r4, #0x2 + add r1, r1, r0 + ldr r0, ._64 + 8 @ 0x2abd + add r1, r1, r0 + ldrb r1, [r1] + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + cmp r4, #0x7 + bhi ._62 @cond_branch + lsl r1, r4, #0x19 + mov r0, #0xa0 + lsl r0, r0, #0x14 + add r1, r1, r0 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0x9 + bl Menu_PrintText + b ._63 +._65: + .align 2, 0 +._64: + .word gStringVar1 + .word gSaveBlock1 + .word 0x2abd +._62: + lsl r1, r4, #0x19 + mov r0, #0xfa + lsl r0, r0, #0x18 + add r1, r1, r0 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0xc + bl Menu_PrintText +._63: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0xf + bls ._66 @cond_branch + pop {r4, r5, r6} + pop {r0} + bx r0 + + thumb_func_end debug_sub_808F7B4 + + thumb_func_start debug_sub_808F8AC +debug_sub_808F8AC: + push {lr} + ldr r0, ._67 @ 0x832 + bl FlagSet + ldr r0, ._67 + 4 @ 0x818 + bl FlagSet + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._68: + .align 2, 0 +._67: + .word 0x832 + .word 0x818 + + thumb_func_end debug_sub_808F8AC + + thumb_func_start debug_sub_808F8CC +debug_sub_808F8CC: + push {r4, lr} + ldr r1, ._69 @ gDebug_03000724 + mov r0, #0x0 + strb r0, [r1] + ldr r0, ._69 + 4 @ gUnknown_Debug_083C49CA + bl sub_8071F40 + mov r0, #0xd + mov r1, #0x6 + mov r2, #0x1a + mov r3, #0x8 + bl Menu_BlankWindowRect + ldr r0, ._69 + 8 @ gUnknown_Debug_083C4ACC + ldr r0, [r0] + mov r1, #0xe + mov r2, #0x7 + bl Menu_PrintText + mov r0, #0x16 + mov r1, #0x1 + mov r2, #0x18 + mov r3, #0x2 + bl Menu_BlankWindowRect + ldr r4, ._69 + 12 @ gStringVar1 + add r0, r4, #0 + mov r1, #0x0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + add r0, r4, #0 + mov r1, #0x17 + mov r2, #0x1 + bl Menu_PrintText + ldr r1, ._69 + 16 @ gMenuCallback + ldr r0, ._69 + 20 @ debug_sub_808F93C + str r0, [r1] + pop {r4} + pop {r0} + bx r0 +._70: + .align 2, 0 +._69: + .word gDebug_03000724 + .word gUnknown_Debug_083C49CA + .word gUnknown_Debug_083C4ACC + .word gStringVar1 + .word gMenuCallback + .word debug_sub_808F93C+1 + + thumb_func_end debug_sub_808F8CC + + thumb_func_start debug_sub_808F93C +debug_sub_808F93C: + push {r4, lr} + mov r2, #0x0 + ldr r0, ._83 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._71 @cond_branch + ldr r1, ._83 + 4 @ gDebug_03000725 + ldrb r0, [r1] + add r0, r0, #0x1 + strb r0, [r1] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x18 + bne ._72 @cond_branch + strb r2, [r1] +._72: + mov r0, #0x5 + bl PlaySE + mov r2, #0x1 +._71: + ldr r0, ._83 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._73 @cond_branch + ldr r1, ._83 + 4 @ gDebug_03000725 + ldrb r0, [r1] + cmp r0, #0 + bne ._74 @cond_branch + mov r0, #0x18 + strb r0, [r1] +._74: + ldrb r0, [r1] + sub r0, r0, #0x1 + strb r0, [r1] + mov r0, #0x5 + bl PlaySE + mov r2, #0x1 +._73: + ldr r0, ._83 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._75 @cond_branch + ldr r1, ._83 + 8 @ gDebug_03000724 + ldrb r0, [r1] + add r0, r0, #0x1 + strb r0, [r1] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0xc + bne ._76 @cond_branch + mov r0, #0x0 + strb r0, [r1] +._76: + mov r0, #0x5 + bl PlaySE + mov r2, #0x1 +._75: + ldr r0, ._83 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._77 @cond_branch + ldr r1, ._83 + 8 @ gDebug_03000724 + ldrb r0, [r1] + cmp r0, #0 + bne ._78 @cond_branch + mov r0, #0xc + strb r0, [r1] +._78: + ldrb r0, [r1] + sub r0, r0, #0x1 + strb r0, [r1] + mov r0, #0x5 + bl PlaySE + mov r2, #0x1 +._77: + cmp r2, #0 + beq ._79 @cond_branch + mov r0, #0xd + mov r1, #0x6 + mov r2, #0x1a + mov r3, #0x8 + bl Menu_BlankWindowRect + ldr r1, ._83 + 12 @ gUnknown_Debug_083C4ACC + ldr r0, ._83 + 8 @ gDebug_03000724 + ldrb r0, [r0] + lsl r0, r0, #0x2 + add r0, r0, r1 + ldr r0, [r0] + mov r1, #0xe + mov r2, #0x7 + bl Menu_PrintText + mov r0, #0x16 + mov r1, #0x1 + mov r2, #0x18 + mov r3, #0x2 + bl Menu_BlankWindowRect + ldr r4, ._83 + 16 @ gStringVar1 + ldr r0, ._83 + 4 @ gDebug_03000725 + ldrb r1, [r0] + add r0, r4, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + add r0, r4, #0 + mov r1, #0x17 + mov r2, #0x1 + bl Menu_PrintText +._79: + ldr r4, ._83 @ gMain + ldrh r1, [r4, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._80 @cond_branch + mov r0, #0x15 + bl PlaySE + ldr r0, ._83 + 4 @ gDebug_03000725 + ldrb r0, [r0] + ldr r2, ._83 + 20 @ gUnknown_Debug_083C4ABD + ldr r1, ._83 + 8 @ gDebug_03000724 + ldrb r1, [r1] + add r1, r1, r2 + ldrb r1, [r1] + bl debug_sub_808FA88 +._80: + ldrh r1, [r4, #0x2e] + mov r0, #0xa + and r0, r0, r1 + cmp r0, #0 + bne ._81 @cond_branch + mov r0, #0x0 + b ._82 +._84: + .align 2, 0 +._83: + .word gMain + .word gDebug_03000725 + .word gDebug_03000724 + .word gUnknown_Debug_083C4ACC + .word gStringVar1 + .word gUnknown_Debug_083C4ABD +._81: + ldr r0, ._85 @ gSaveBlock1 + bl sub_80BF588 + bl CloseMenu + mov r0, #0x1 +._82: + pop {r4} + pop {r1} + bx r1 +._86: + .align 2, 0 +._85: + .word gSaveBlock1+0x2738 + + thumb_func_end debug_sub_808F93C + + thumb_func_start debug_sub_808FA88 +debug_sub_808FA88: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + add sp, sp, #0xffffffcc + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + lsl r1, r1, #0x18 + lsr r7, r1, #0x18 + bl GetLeadMonIndex + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r9, r0 + ldr r3, ._92 @ gSaveBlock1 + lsl r4, r6, #0x3 + add r2, r4, r6 + lsl r2, r2, #0x2 + add r0, r2, r3 + ldr r5, ._92 + 4 @ 0x2738 + add r1, r0, r5 + strb r7, [r1] + ldr r1, ._92 + 8 @ 0x2739 + add r0, r0, r1 + mov r1, #0x1 + strb r1, [r0] + mov r1, #0x0 + ldr r0, ._92 + 12 @ 0x273a + add r5, r3, r0 + mov r3, #0x1 +._87: + add r0, r1, r2 + add r0, r0, r5 + strb r3, [r0] + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + cmp r1, #0x21 + bls ._87 @cond_branch + add r0, r7, #0 + bl GetTVChannelByShowType + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + add r1, r0, #0 + cmp r0, #0x3 + beq ._88 @cond_branch + cmp r0, #0x3 + bgt ._89 @cond_branch + cmp r0, #0x2 + beq ._90 @cond_branch + b ._95 +._93: + .align 2, 0 +._92: + .word gSaveBlock1 + .word 0x2738 + .word 0x2739 + .word 0x273a +._89: + cmp r1, #0x4 + bne ._95 @cond_branch +._90: + add r0, r4, r6 + lsl r0, r0, #0x2 + ldr r1, ._96 @ gSaveBlock1 + add r0, r0, r1 + bl sub_80BE160 + b ._95 +._97: + .align 2, 0 +._96: + .word gSaveBlock1+0x2738 +._88: + add r0, r4, r6 + lsl r0, r0, #0x2 + ldr r1, ._100 @ gSaveBlock1 + add r0, r0, r1 + bl sub_80BE138 +._95: + sub r0, r7, #1 + cmp r0, #0x28 + bls ._98 @cond_branch + b ._173 +._98: + lsl r0, r0, #0x2 + ldr r1, ._100 + 4 @ + add r0, r0, r1 + ldr r0, [r0] + mov pc, r0 +._101: + .align 2, 0 +._100: + .word gSaveBlock1+0x2738 + .word ._102 +._102: + .word ._104 + .word ._104 + .word ._105 + .word ._173 + .word ._107 + .word ._108 + .word ._109 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._123 + .word ._124 + .word ._125 + .word ._126 + .word ._127 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._143 +._104: + add r0, r4, r6 + lsl r0, r0, #0x2 + ldr r1, ._145 @ gSaveBlock1 + add r4, r0, r1 + mov r2, #0x1 + strh r2, [r4, #0x2] + add r1, r1, #0x10 + add r0, r0, r1 + ldr r1, ._145 + 4 @ gSaveBlock2 + bl StringCopy + mov r0, #0x5 + strb r0, [r4, #0x18] + b ._173 +._146: + .align 2, 0 +._145: + .word gSaveBlock1+0x2738 + .word gSaveBlock2 +._105: + add r4, r4, r6 + lsl r4, r4, #0x2 + ldr r6, ._148 @ gSaveBlock1 + add r1, r4, r6 + mov r8, r1 + mov r0, #0x1 + strh r0, [r1, #0x2] + add r0, r6, #5 + add r0, r4, r0 + ldr r1, ._148 + 4 @ gSaveBlock2 + bl StringCopy + mov r0, #0x64 + mov r5, r9 + mul r5, r5, r0 + ldr r0, ._148 + 8 @ gPlayerParty + add r5, r5, r0 + add r6, r6, #0x10 + add r4, r4, r6 + add r0, r5, #0 + mov r1, #0x2 + add r2, r4, #0 + bl GetMonData + mov r0, #0x5 + mov r1, r8 + strb r0, [r1, #0xd] + add r0, r5, #0 + mov r1, #0x3 + bl GetMonData + mov r5, r8 + strb r0, [r5, #0xe] + b ._173 +._149: + .align 2, 0 +._148: + .word gSaveBlock1+0x2738 + .word gSaveBlock2 + .word gPlayerParty +._107: + mov r0, #0x64 + mov r1, r9 + mul r1, r1, r0 + mov r8, r1 + ldr r0, ._151 @ gPlayerParty + add r8, r8, r0 + mov r0, r8 + mov r1, #0xb + bl GetMonData + add r4, r4, r6 + lsl r4, r4, #0x2 + ldr r5, ._151 + 4 @ gSaveBlock1 + add r6, r4, r5 + strh r0, [r6, #0x2] + mov r0, #0x1 + strh r0, [r6, #0x1c] + add r0, r5, #0 + add r0, r0, #0xf + add r0, r4, r0 + ldr r1, ._151 + 8 @ gSaveBlock2 + bl StringCopy + add r5, r5, #0x4 + add r4, r4, r5 + mov r0, r8 + mov r1, #0x2 + add r2, r4, #0 + bl GetMonData + mov r0, #0x5 + strb r0, [r6, #0x1e] + mov r0, r8 + mov r1, #0x3 + bl GetMonData + strb r0, [r6, #0x1f] + b ._173 +._152: + .align 2, 0 +._151: + .word gPlayerParty + .word gSaveBlock1+0x2738 + .word gSaveBlock2 +._108: + add r4, r4, r6 + lsl r4, r4, #0x2 + ldr r6, ._154 @ gSaveBlock1 + add r5, r4, r6 + mov r8, r5 + mov r0, #0x1 + strh r0, [r5, #0x2] + add r0, r6, #0 + add r0, r0, #0x16 + add r0, r4, r0 + ldr r1, ._154 + 4 @ gSaveBlock2 + bl StringCopy + mov r0, #0x64 + mov r5, r9 + mul r5, r5, r0 + ldr r0, ._154 + 8 @ gPlayerParty + add r5, r5, r0 + add r6, r6, #0x8 + add r4, r4, r6 + add r0, r5, #0 + mov r1, #0x2 + add r2, r4, #0 + bl GetMonData + mov r0, #0x5 + mov r1, r8 + strb r0, [r1, #0x1e] + add r0, r5, #0 + mov r1, #0x3 + bl GetMonData + mov r5, r8 + strb r0, [r5, #0x1f] + b ._173 +._155: + .align 2, 0 +._154: + .word gSaveBlock1+0x2738 + .word gSaveBlock2 + .word gPlayerParty +._109: + add r4, r4, r6 + lsl r4, r4, #0x2 + ldr r5, ._157 @ gSaveBlock1 + add r6, r4, r5 + mov r0, #0x1 + strh r0, [r6, #0xa] + strh r0, [r6, #0x14] + add r0, r5, #2 + add r0, r4, r0 + ldr r1, ._157 + 4 @ gSaveBlock2 + mov r8, r1 + bl StringCopy + add r5, r5, #0xc + add r4, r4, r5 + add r0, r4, #0 + mov r1, r8 + bl StringCopy + mov r0, #0x5 + strb r0, [r6, #0x1d] + b ._173 +._158: + .align 2, 0 +._157: + .word gSaveBlock1+0x2738 + .word gSaveBlock2 +._143: + add r0, r4, r6 + lsl r0, r0, #0x2 + ldr r1, ._160 @ gSaveBlock1 + add r0, r0, r1 + mov r1, #0x1 + strh r1, [r0, #0xc] + strh r1, [r0, #0x16] + b ._173 +._161: + .align 2, 0 +._160: + .word gSaveBlock1+0x2738 +._123: + add r4, r4, r6 + lsl r4, r4, #0x2 + ldr r0, ._163 @ gSaveBlock1 + add r4, r4, r0 + ldr r1, ._163 + 4 @ gUnknown_Debug_083C4C64 + mov r0, sp + mov r2, #0x8 + bl memcpy + add r5, sp, #0x8 + ldr r1, ._163 + 8 @ gUnknown_Debug_083C4C6C + add r0, r5, #0 + mov r2, #0xb + bl memcpy + mov r0, #0xff + strb r0, [r4, #0x12] + add r0, r4, #0 + add r0, r0, #0x13 + mov r1, sp + bl StringCopy + add r0, r4, #4 + add r1, r5, #0 + bl StringCopy + mov r0, #0xc + strb r0, [r4, #0xf] + mov r0, #0x28 + strh r0, [r4, #0x10] + mov r0, #0x5 + strb r0, [r4, #0x2] + strb r0, [r4, #0x3] + b ._173 +._164: + .align 2, 0 +._163: + .word gSaveBlock1+0x2738 + .word gUnknown_Debug_083C4C64 + .word gUnknown_Debug_083C4C6C +._124: + add r0, r4, r6 + lsl r0, r0, #0x2 + ldr r1, ._168 @ gSaveBlock1 + add r5, r0, r1 + add r4, sp, #0x14 + ldr r1, ._168 + 4 @ gUnknown_Debug_083C4C64 + add r0, r4, #0 + mov r2, #0x8 + bl memcpy + add r1, r4, #0 + mov r3, #0xfe + mov r2, #0x2 + add r0, r5, #0 + add r0, r0, #0x10 +._165: + strh r3, [r0] + sub r0, r0, #0x2 + sub r2, r2, #0x1 + cmp r2, #0 + bge ._165 @cond_branch + mov r0, #0x1 + strb r0, [r5, #0x2] + mov r0, #0x28 + strb r0, [r5, #0x12] + add r0, r5, #0 + add r0, r0, #0x13 + add r3, r5, #6 + mov r6, #0x1e + add r2, r5, #0 + add r2, r2, #0xa +._166: + strh r6, [r2] + sub r2, r2, #0x2 + cmp r2, r3 + bge ._166 @cond_branch + bl StringCopy + mov r0, #0x5 + strb r0, [r5, #0x3] + b ._173 +._169: + .align 2, 0 +._168: + .word gSaveBlock1+0x2738 + .word gUnknown_Debug_083C4C64 +._125: + add r4, r4, r6 + lsl r4, r4, #0x2 + ldr r0, ._171 @ gSaveBlock1 + add r4, r4, r0 + add r5, sp, #0x1c + ldr r1, ._171 + 4 @ gUnknown_Debug_083C4C64 + add r0, r5, #0 + mov r2, #0x8 + bl memcpy + mov r0, #0x28 + strh r0, [r4, #0xc] + strh r0, [r4, #0xe] + mov r0, #0x3 + strb r0, [r4, #0x12] + mov r0, #0xff + strb r0, [r4, #0x10] + mov r0, #0x1 + strb r0, [r4, #0x11] + add r0, r4, #0 + add r0, r0, #0x13 + add r1, r5, #0 + bl StringCopy + mov r0, #0x5 + strb r0, [r4, #0x2] + b ._173 +._172: + .align 2, 0 +._171: + .word gSaveBlock1+0x2738 + .word gUnknown_Debug_083C4C64 +._126: + add r4, r4, r6 + lsl r4, r4, #0x2 + ldr r0, ._174 @ gSaveBlock1 + add r4, r4, r0 + add r5, sp, #0x24 + ldr r1, ._174 + 4 @ gUnknown_Debug_083C4C64 + add r0, r5, #0 + mov r2, #0x8 + bl memcpy + mov r0, #0xff + strb r0, [r4, #0x2] + mov r0, #0x0 + strb r0, [r4, #0x3] + mov r0, #0x28 + strh r0, [r4, #0x4] + add r0, r4, #0 + add r0, r0, #0x13 + add r1, r5, #0 + bl StringCopy + mov r0, #0x5 + strb r0, [r4, #0x6] + b ._173 +._175: + .align 2, 0 +._174: + .word gSaveBlock1+0x2738 + .word gUnknown_Debug_083C4C64 +._127: + add r4, r4, r6 + lsl r4, r4, #0x2 + ldr r0, ._176 @ gSaveBlock1 + add r4, r4, r0 + add r5, sp, #0x2c + ldr r1, ._176 + 4 @ gUnknown_Debug_083C4C64 + add r0, r5, #0 + mov r2, #0x8 + bl memcpy + ldr r0, ._176 + 8 @ 0xffff + strh r0, [r4, #0x2] + mov r0, #0x1 + neg r0, r0 + strh r0, [r4, #0x6] + mov r0, #0x28 + strh r0, [r4, #0x4] + strh r0, [r4, #0x8] + mov r0, #0x3 + strb r0, [r4, #0xa] + add r0, r4, #0 + add r0, r0, #0x13 + add r1, r5, #0 + bl StringCopy + mov r0, #0x5 + strb r0, [r4, #0xb] +._173: + add sp, sp, #0x34 + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._177: + .align 2, 0 +._176: + .word gSaveBlock1+0x2738 + .word gUnknown_Debug_083C4C64 + .word 0xffff + + thumb_func_end debug_sub_808FA88 + + thumb_func_start debug_sub_808FEBC +debug_sub_808FEBC: + push {lr} + bl ClearTVShowData + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 + + thumb_func_end debug_sub_808FEBC + + thumb_func_start debug_sub_808FECC +debug_sub_808FECC: + push {r4, lr} + ldr r1, ._178 @ gDebug_03000724 + mov r0, #0x0 + strb r0, [r1] + ldr r0, ._178 + 4 @ gUnknown_Debug_083C49CA + bl sub_8071F40 + mov r0, #0xd + mov r1, #0x6 + mov r2, #0x17 + mov r3, #0x8 + bl Menu_BlankWindowRect + ldr r0, ._178 + 8 @ gUnknown_Debug_083C4B24 + ldr r0, [r0] + mov r1, #0xe + mov r2, #0x7 + bl Menu_PrintText + mov r0, #0x16 + mov r1, #0x1 + mov r2, #0x18 + mov r3, #0x2 + bl Menu_BlankWindowRect + ldr r4, ._178 + 12 @ gStringVar1 + add r0, r4, #0 + mov r1, #0x0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + add r0, r4, #0 + mov r1, #0x17 + mov r2, #0x1 + bl Menu_PrintText + ldr r1, ._178 + 16 @ gMenuCallback + ldr r0, ._178 + 20 @ debug_sub_808FF3C + str r0, [r1] + pop {r4} + pop {r0} + bx r0 +._179: + .align 2, 0 +._178: + .word gDebug_03000724 + .word gUnknown_Debug_083C49CA + .word gUnknown_Debug_083C4B24 + .word gStringVar1 + .word gMenuCallback + .word debug_sub_808FF3C+1 + + thumb_func_end debug_sub_808FECC + + thumb_func_start debug_sub_808FF3C +debug_sub_808FF3C: + push {r4, lr} + mov r2, #0x0 + ldr r0, ._192 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._180 @cond_branch + ldr r1, ._192 + 4 @ gDebug_03000725 + ldrb r0, [r1] + add r0, r0, #0x1 + strb r0, [r1] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x10 + bne ._181 @cond_branch + strb r2, [r1] +._181: + mov r0, #0x5 + bl PlaySE + mov r2, #0x1 +._180: + ldr r0, ._192 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._182 @cond_branch + ldr r1, ._192 + 4 @ gDebug_03000725 + ldrb r0, [r1] + cmp r0, #0 + bne ._183 @cond_branch + mov r0, #0x10 + strb r0, [r1] +._183: + ldrb r0, [r1] + sub r0, r0, #0x1 + strb r0, [r1] + mov r0, #0x5 + bl PlaySE + mov r2, #0x1 +._182: + ldr r0, ._192 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._184 @cond_branch + ldr r1, ._192 + 8 @ gDebug_03000724 + ldrb r0, [r1] + add r0, r0, #0x1 + strb r0, [r1] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x3 + bne ._185 @cond_branch + mov r0, #0x0 + strb r0, [r1] +._185: + mov r0, #0x5 + bl PlaySE + mov r2, #0x1 +._184: + ldr r0, ._192 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._186 @cond_branch + ldr r1, ._192 + 8 @ gDebug_03000724 + ldrb r0, [r1] + cmp r0, #0 + bne ._187 @cond_branch + mov r0, #0x3 + strb r0, [r1] +._187: + ldrb r0, [r1] + sub r0, r0, #0x1 + strb r0, [r1] + mov r0, #0x5 + bl PlaySE + mov r2, #0x1 +._186: + cmp r2, #0 + beq ._188 @cond_branch + mov r0, #0xd + mov r1, #0x6 + mov r2, #0x17 + mov r3, #0x8 + bl Menu_BlankWindowRect + ldr r1, ._192 + 12 @ gUnknown_Debug_083C4B24 + ldr r0, ._192 + 8 @ gDebug_03000724 + ldrb r0, [r0] + lsl r0, r0, #0x2 + add r0, r0, r1 + ldr r0, [r0] + mov r1, #0xe + mov r2, #0x7 + bl Menu_PrintText + mov r0, #0x16 + mov r1, #0x1 + mov r2, #0x18 + mov r3, #0x2 + bl Menu_BlankWindowRect + ldr r4, ._192 + 16 @ gStringVar1 + ldr r0, ._192 + 4 @ gDebug_03000725 + ldrb r1, [r0] + add r0, r4, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + add r0, r4, #0 + mov r1, #0x17 + mov r2, #0x1 + bl Menu_PrintText +._188: + ldr r4, ._192 @ gMain + ldrh r1, [r4, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._189 @cond_branch + mov r0, #0x15 + bl PlaySE + ldr r0, ._192 + 4 @ gDebug_03000725 + ldrb r0, [r0] + ldr r2, ._192 + 20 @ gUnknown_Debug_083C4B20 + ldr r1, ._192 + 8 @ gDebug_03000724 + ldrb r1, [r1] + add r1, r1, r2 + ldrb r1, [r1] + bl debug_sub_8090080 +._189: + ldrh r1, [r4, #0x2e] + mov r0, #0xa + and r0, r0, r1 + cmp r0, #0 + bne ._190 @cond_branch + mov r0, #0x0 + b ._191 +._193: + .align 2, 0 +._192: + .word gMain + .word gDebug_03000725 + .word gDebug_03000724 + .word gUnknown_Debug_083C4B24 + .word gStringVar1 + .word gUnknown_Debug_083C4B20 +._190: + bl sub_80BEC40 + bl CloseMenu + mov r0, #0x1 +._191: + pop {r4} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808FF3C + + thumb_func_start debug_sub_8090080 +debug_sub_8090080: + lsl r0, r0, #0x18 + ldr r2, ._194 @ gSaveBlock1 + lsr r0, r0, #0x16 + add r0, r0, r2 + ldr r3, ._194 + 4 @ 0x2abc + add r2, r0, r3 + strb r1, [r2] + ldr r1, ._194 + 8 @ 0x2abd + add r2, r0, r1 + mov r1, #0x1 + strb r1, [r2] + add r3, r3, #0x2 + add r0, r0, r3 + mov r1, #0x4 + strh r1, [r0] + bx lr +._195: + .align 2, 0 +._194: + .word gSaveBlock1 + .word 0x2abc + .word 0x2abd + + thumb_func_end debug_sub_8090080 + + thumb_func_start debug_sub_80900AC +debug_sub_80900AC: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r7, #0x0 + mov r5, #0x0 + ldr r0, ._202 @ gSaveBlock1 + mov r8, r0 +._198: + lsl r0, r5, #0x3 + add r0, r0, r5 + lsl r0, r0, #0x2 + mov r1, r8 + add r6, r0, r1 + ldr r1, ._202 + 4 @ 0x2738 + add r0, r6, r1 + ldrb r4, [r0] + cmp r4, #0 + bne ._196 @cond_branch + cmp r7, #0xc + bne ._197 @cond_branch + mov r7, #0x0 +._197: + ldr r0, ._202 + 8 @ gUnknown_Debug_083C4ABD + add r0, r7, r0 + ldrb r1, [r0] + add r0, r5, #0 + bl debug_sub_808FA88 + ldr r1, ._202 + 12 @ 0x2739 + add r0, r6, r1 + strb r4, [r0] + add r0, r7, #1 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._196: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x17 + bls ._198 @cond_branch + mov r7, #0x0 + mov r5, #0x0 +._201: + ldr r0, ._202 @ gSaveBlock1 + lsl r1, r5, #0x2 + add r1, r1, r0 + ldr r0, ._202 + 16 @ 0x2abc + add r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + bne ._199 @cond_branch + cmp r7, #0x3 + bne ._200 @cond_branch + mov r7, #0x0 +._200: + ldr r0, ._202 + 20 @ gUnknown_Debug_083C4B20 + add r0, r7, r0 + ldrb r1, [r0] + add r0, r5, #0 + bl debug_sub_8090080 + add r0, r7, #1 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._199: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0xf + bls ._201 @cond_branch + bl CloseMenu + mov r0, #0x1 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._203: + .align 2, 0 +._202: + .word gSaveBlock1 + .word 0x2738 + .word gUnknown_Debug_083C4ABD + .word 0x2739 + .word 0x2abc + .word gUnknown_Debug_083C4B20 + + thumb_func_end debug_sub_80900AC + + thumb_func_start NoharaDebugMenu_Fan +NoharaDebugMenu_Fan: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xb + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._204 @ gUnknown_Debug_083C4D28 + mov r0, #0x1 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0xa + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._204 + 4 @ gMenuCallback + ldr r0, ._204 + 8 @ debug_sub_80901A4 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._205: + .align 2, 0 +._204: + .word gUnknown_Debug_083C4D28 + .word gMenuCallback + .word debug_sub_80901A4+1 + + thumb_func_end NoharaDebugMenu_Fan + + thumb_func_start debug_sub_80901A4 +debug_sub_80901A4: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + beq ._206 @cond_branch + add r0, r0, #0x1 + cmp r1, r0 + beq ._207 @cond_branch + ldr r2, ._209 @ gMenuCallback + ldr r0, ._209 + 4 @ gUnknown_Debug_083C4D28 + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + str r0, [r2] +._206: + mov r0, #0x0 + b ._208 +._210: + .align 2, 0 +._209: + .word gMenuCallback + .word gUnknown_Debug_083C4D28 +._207: + bl CloseMenu + mov r0, #0x1 +._208: + pop {r1} + bx r1 + + thumb_func_end debug_sub_80901A4 + + thumb_func_start debug_sub_80901E4 +debug_sub_80901E4: + push {lr} + bl ResetFanClub + bl sub_810FAA0 + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 + + thumb_func_end debug_sub_80901E4 + + thumb_func_start debug_sub_80901F8 +debug_sub_80901F8: + push {lr} + bl sub_810FB9C + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r2, ._211 @ gUnknown_Debug_083C4CA8 + ldr r1, ._211 + 4 @ gUnknown_083F8408 + add r0, r0, r1 + ldrb r0, [r0] + sub r0, r0, #0x8 + lsl r0, r0, #0x2 + add r0, r0, r2 + ldr r0, [r0] + mov r1, #0xe + mov r2, #0x7 + bl Menu_PrintText + ldr r1, ._211 + 8 @ gMenuCallback + ldr r0, ._211 + 12 @ debug_sub_8090278 + str r0, [r1] + mov r0, #0x0 + pop {r1} + bx r1 +._212: + .align 2, 0 +._211: + .word gUnknown_Debug_083C4CA8 + .word gUnknown_083F8408 + .word gMenuCallback + .word debug_sub_8090278+1 + + thumb_func_end debug_sub_80901F8 + + thumb_func_start debug_sub_8090238 +debug_sub_8090238: + push {lr} + bl sub_810FC18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r2, ._213 @ gUnknown_Debug_083C4CA8 + ldr r1, ._213 + 4 @ gUnknown_083F8410 + add r0, r0, r1 + ldrb r0, [r0] + sub r0, r0, #0x8 + lsl r0, r0, #0x2 + add r0, r0, r2 + ldr r0, [r0] + mov r1, #0xe + mov r2, #0x7 + bl Menu_PrintText + ldr r1, ._213 + 8 @ gMenuCallback + ldr r0, ._213 + 12 @ debug_sub_8090278 + str r0, [r1] + mov r0, #0x0 + pop {r1} + bx r1 +._214: + .align 2, 0 +._213: + .word gUnknown_Debug_083C4CA8 + .word gUnknown_083F8410 + .word gMenuCallback + .word debug_sub_8090278+1 + + thumb_func_end debug_sub_8090238 + + thumb_func_start debug_sub_8090278 +debug_sub_8090278: + push {lr} + ldr r0, ._217 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + bne ._215 @cond_branch + mov r0, #0x0 + b ._216 +._218: + .align 2, 0 +._217: + .word gMain +._215: + bl CloseMenu + mov r0, #0x1 +._216: + pop {r1} + bx r1 + + thumb_func_end debug_sub_8090278 + + thumb_func_start debug_sub_809029C +debug_sub_809029C: + push {r4, lr} + ldr r4, ._219 @ gStringVar1 + ldr r0, ._219 + 4 @ gSaveBlock1 + ldr r1, ._219 + 8 @ 0x13c2 + add r0, r0, r1 + ldrh r0, [r0] + mov r1, #0x7f + and r1, r1, r0 + add r0, r4, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + add r0, r4, #0 + mov r1, #0x10 + mov r2, #0x7 + bl Menu_PrintText + ldr r1, ._219 + 12 @ gMenuCallback + ldr r0, ._219 + 16 @ debug_sub_8090278 + str r0, [r1] + mov r0, #0x0 + pop {r4} + pop {r1} + bx r1 +._220: + .align 2, 0 +._219: + .word gStringVar1 + .word gSaveBlock1 + .word 0x13c2 + .word gMenuCallback + .word debug_sub_8090278+1 + + thumb_func_end debug_sub_809029C + + thumb_func_start debug_sub_80902E4 +debug_sub_80902E4: + push {lr} + ldr r1, ._221 @ gSaveBlock2 + ldrh r0, [r1, #0xe] + add r0, r0, #0x6 + strh r0, [r1, #0xe] + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._222: + .align 2, 0 +._221: + .word gSaveBlock2 + + thumb_func_end debug_sub_80902E4 + + thumb_func_start debug_sub_80902FC +debug_sub_80902FC: + push {lr} + mov r0, #0x0 + bl sub_810FB10 + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 + + thumb_func_end debug_sub_80902FC + + thumb_func_start debug_sub_8090310 +debug_sub_8090310: + push {lr} + mov r0, #0x1 + bl sub_810FB10 + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 + + thumb_func_end debug_sub_8090310 + + thumb_func_start debug_sub_8090324 +debug_sub_8090324: + push {lr} + mov r0, #0x2 + bl sub_810FB10 + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 + + thumb_func_end debug_sub_8090324 + + thumb_func_start debug_sub_8090338 +debug_sub_8090338: + push {lr} + mov r0, #0x3 + bl sub_810FB10 + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 + + thumb_func_end debug_sub_8090338 + + thumb_func_start NoharaDebugMenu_BattleVSDad +NoharaDebugMenu_BattleVSDad: + push {lr} + ldr r0, ._223 @ 0x4085 + mov r1, #0x6 + bl VarSet + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._224: + .align 2, 0 +._223: + .word 0x4085 + + thumb_func_end NoharaDebugMenu_BattleVSDad + + thumb_func_start NoharaDebugMenu_DadAfterBattle +NoharaDebugMenu_DadAfterBattle: + push {lr} + ldr r0, ._225 @ 0x4085 + mov r1, #0x7 + bl VarSet + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._226: + .align 2, 0 +._225: + .word 0x4085 + + thumb_func_end NoharaDebugMenu_DadAfterBattle + + thumb_func_start NoharaDebugMenu_SootopolisCity +NoharaDebugMenu_SootopolisCity: + push {lr} + mov r0, #0x81 + bl FlagSet + mov r0, #0x71 + bl FlagSet + ldr r0, ._227 @ 0x32f + bl FlagClear + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._228: + .align 2, 0 +._227: + .word 0x32f + + thumb_func_end NoharaDebugMenu_SootopolisCity + + thumb_func_start NoharaDebugMenu_Embark +NoharaDebugMenu_Embark: + push {lr} + ldr r0, ._229 @ 0x2e3 + bl FlagClear + ldr r0, ._229 + 4 @ 0x4090 + mov r1, #0x1 + bl VarSet + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._230: + .align 2, 0 +._229: + .word 0x2e3 + .word 0x4090 + + thumb_func_end NoharaDebugMenu_Embark + + thumb_func_start NoharaDebugMenu_Yes9999 +NoharaDebugMenu_Yes9999: + push {lr} + ldr r0, ._231 @ 0x4048 + ldr r1, ._231 + 4 @ 0x270f + bl VarSet + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._232: + .align 2, 0 +._231: + .word 0x4048 + .word 0x270f + + thumb_func_end NoharaDebugMenu_Yes9999 + + thumb_func_start NoharaDebugMenu_LegendsFlagOn +NoharaDebugMenu_LegendsFlagOn: + push {lr} + mov r0, #0xe4 + bl FlagSet + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 + + thumb_func_end NoharaDebugMenu_LegendsFlagOn + + thumb_func_start NoharaDebugMenu_AddNumWinningStreaks +NoharaDebugMenu_AddNumWinningStreaks: + push {lr} + ldr r0, ._235 @ gSaveBlock2 + ldr r1, ._235 + 4 @ 0x572 + add r2, r0, r1 + ldrh r1, [r2] + cmp r1, #0x31 + bhi ._233 @cond_branch + mov r0, #0x32 + b ._244 +._236: + .align 2, 0 +._235: + .word gSaveBlock2 + .word 0x572 +._233: + cmp r1, #0x63 + bhi ._237 @cond_branch + mov r0, #0x64 + b ._244 +._237: + ldr r0, ._241 @ 0x3e7 + cmp r1, r0 + bhi ._239 @cond_branch + add r0, r0, #0x1 + b ._244 +._242: + .align 2, 0 +._241: + .word 0x3e7 +._239: + ldr r0, ._245 @ 0x1387 + cmp r1, r0 + bhi ._243 @cond_branch + ldr r0, ._245 + 4 @ 0x2706 + b ._244 +._246: + .align 2, 0 +._245: + .word 0x1387 + .word 0x2706 +._243: + ldr r0, ._248 @ 0x2705 + cmp r1, r0 + bhi ._247 @cond_branch + add r0, r0, #0xa +._244: + strh r0, [r2] +._247: + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._249: + .align 2, 0 +._248: + .word 0x2705 + + thumb_func_end NoharaDebugMenu_AddNumWinningStreaks + + .align 2, 0 + +.endif diff --git a/asm/normal.s b/asm/normal.s index fffbc3870..732c049ab 100644 --- a/asm/normal.s +++ b/asm/normal.s @@ -1214,7 +1214,7 @@ _080E25A0: bcs _080E25F4 ldr r2, _080E2604 @ =gSprites mov r12, r2 - ldr r6, _080E2608 @ =gObjectBankIDs + ldr r6, _080E2608 @ =gBankSpriteIds movs r7, 0x3 negs r7, r7 _080E25D2: @@ -1245,14 +1245,14 @@ _080E25FA: .align 2, 0 _080E2600: .4byte gNoOfAllBanks _080E2604: .4byte gSprites -_080E2608: .4byte gObjectBankIDs +_080E2608: .4byte gBankSpriteIds thumb_func_end sub_80E255C thumb_func_start sub_80E260C sub_80E260C: @ 80E260C push {r4-r6,lr} ldr r6, _080E2680 @ =gSprites - ldr r4, _080E2684 @ =gObjectBankIDs + ldr r4, _080E2684 @ =gBankSpriteIds ldr r5, _080E2688 @ =gAnimBankAttacker ldrb r0, [r5] adds r0, r4 @@ -1309,7 +1309,7 @@ sub_80E260C: @ 80E260C b _080E26B0 .align 2, 0 _080E2680: .4byte gSprites -_080E2684: .4byte gObjectBankIDs +_080E2684: .4byte gBankSpriteIds _080E2688: .4byte gAnimBankAttacker _080E268C: .4byte gAnimBankTarget _080E2690: .4byte gBattleAnimArgs @@ -1471,7 +1471,7 @@ sub_80E27A0: @ 80E27A0 bne _080E27C4 adds r0, r5, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos b _080E27CC .align 2, 0 _080E27C0: .4byte gBattleAnimArgs @@ -1506,7 +1506,7 @@ sub_80E27E8: @ 80E27E8 bne _080E280C adds r0, r5, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos b _080E2814 .align 2, 0 _080E2808: .4byte gBattleAnimArgs @@ -1586,7 +1586,7 @@ _080E288C: bne _080E28AC adds r0, r4, 0 movs r1, 0 - bl sub_80787B0 + bl InitAnimSpritePos b _080E28B4 .align 2, 0 _080E28A8: .4byte gBattleAnimArgs @@ -1694,7 +1694,7 @@ sub_80E2978: @ 80E2978 bne _080E2994 adds r0, r4, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos b _080E299C .align 2, 0 _080E2990: .4byte gBattleAnimArgs @@ -1709,7 +1709,7 @@ _080E299C: ldr r1, _080E29B8 @ =DestroyAnimSprite adds r0, r4, 0 bl StoreSpriteCallbackInData - ldr r0, _080E29BC @ =sub_80782D8 + ldr r0, _080E29BC @ =WaitAnimForDuration str r0, [r4, 0x1C] pop {r4} pop {r0} @@ -1717,7 +1717,7 @@ _080E299C: .align 2, 0 _080E29B4: .4byte gBattleAnimArgs _080E29B8: .4byte DestroyAnimSprite -_080E29BC: .4byte sub_80782D8 +_080E29BC: .4byte WaitAnimForDuration thumb_func_end sub_80E2978 thumb_func_start sub_80E29C0 @@ -1733,7 +1733,7 @@ sub_80E29C0: @ 80E29C0 bne _080E29E4 adds r0, r5, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos b _080E29EC .align 2, 0 _080E29E0: .4byte gBattleAnimArgs @@ -2532,7 +2532,7 @@ _080E2FDC: cmp r0, 0x1 bne _080E3028 ldr r3, _080E3060 @ =gSprites - ldr r1, _080E3064 @ =gObjectBankIDs + ldr r1, _080E3064 @ =gBankSpriteIds ldrb r0, [r5] eors r0, r6 adds r0, r1 @@ -2580,7 +2580,7 @@ _080E3054: .4byte 0x00000c08 _080E3058: .4byte REG_BG1CNT _080E305C: .4byte gAnimBankAttacker _080E3060: .4byte gSprites -_080E3064: .4byte gObjectBankIDs +_080E3064: .4byte gBankSpriteIds _080E3068: .4byte gSharedMem + 0x19348 _080E306C: ldr r4, _080E308C @ =gAnimBankAttacker @@ -2809,7 +2809,7 @@ _080E3208: ldrsh r0, [r4, r3] cmp r0, 0x1 bne _080E3288 - ldr r2, _080E32D8 @ =gObjectBankIDs + ldr r2, _080E32D8 @ =gBankSpriteIds ldr r0, _080E32DC @ =gAnimBankAttacker ldrb r1, [r0] movs r0, 0x2 @@ -2862,7 +2862,7 @@ _080E32C8: .4byte REG_BLDCNT _080E32CC: .4byte gSprites _080E32D0: .4byte 0x040000d4 _080E32D4: .4byte 0x85000200 -_080E32D8: .4byte gObjectBankIDs +_080E32D8: .4byte gBankSpriteIds _080E32DC: .4byte gAnimBankAttacker thumb_func_end sub_80E3194 @@ -3069,7 +3069,7 @@ _080E345E: cmp r0, 0x1 bne _080E34A4 ldr r1, _080E34D8 @ =gSprites - ldr r0, _080E34DC @ =gObjectBankIDs + ldr r0, _080E34DC @ =gBankSpriteIds add r0, r8 ldrb r0, [r0] lsls r2, r0, 4 @@ -3115,7 +3115,7 @@ _080E34CC: .4byte REG_BLDCNT _080E34D0: .4byte 0x00003f42 _080E34D4: .4byte REG_BG1CNT _080E34D8: .4byte gSprites -_080E34DC: .4byte gObjectBankIDs +_080E34DC: .4byte gBankSpriteIds _080E34E0: .4byte gSharedMem + 0x19348 _080E34E4: adds r0, r5, 0 @@ -3149,7 +3149,7 @@ _080E3516: lsls r0, 16 lsrs r4, r0, 16 _080E3522: - ldr r6, _080E3570 @ =gObjectBankIDs + ldr r6, _080E3570 @ =gBankSpriteIds adds r0, r5, r6 ldrb r1, [r0] adds r0, r5, 0 @@ -3184,7 +3184,7 @@ _080E3550: .align 2, 0 _080E3568: .4byte gBattlePartyID _080E356C: .4byte gPlayerParty -_080E3570: .4byte gObjectBankIDs +_080E3570: .4byte gBankSpriteIds _080E3574: .4byte gBattleStatMask1_Tilemap _080E3578: ldr r0, _080E35B0 @ =gBattleStatMask2_Tilemap @@ -3344,7 +3344,7 @@ _080E3692: mov r3, sp ldrh r3, [r3, 0x20] strh r3, [r1, 0x14] - ldr r0, _080E36D8 @ =gObjectBankIDs + ldr r0, _080E36D8 @ =gBankSpriteIds add r0, r8 ldrb r0, [r0] strh r0, [r1, 0x16] @@ -3364,7 +3364,7 @@ _080E3692: bl PlaySE12WithPanning b _080E36F4 .align 2, 0 -_080E36D8: .4byte gObjectBankIDs +_080E36D8: .4byte gBankSpriteIds _080E36DC: .4byte sub_80E3704 _080E36E0: movs r0, 0x40 @@ -4040,7 +4040,7 @@ _080E3BE6: lsls r0, 24 cmp r0, 0 beq _080E3C24 - ldr r0, _080E3C44 @ =gObjectBankIDs + ldr r0, _080E3C44 @ =gBankSpriteIds adds r0, r4, r0 ldrb r0, [r0] lsls r2, r0, 4 @@ -4074,7 +4074,7 @@ _080E3C24: .align 2, 0 _080E3C3C: .4byte gSprites _080E3C40: .4byte gAnimBankAttacker -_080E3C44: .4byte gObjectBankIDs +_080E3C44: .4byte gBankSpriteIds _080E3C48: .4byte gBattleAnimArgs thumb_func_end sub_80E3BDC @@ -4236,7 +4236,7 @@ _080E3D8A: lsls r0, 16 lsrs r4, r0, 16 _080E3D96: - ldr r5, _080E3E50 @ =gObjectBankIDs + ldr r5, _080E3E50 @ =gBankSpriteIds adds r0, r7, r5 ldrb r1, [r0] adds r0, r7, 0 @@ -4322,7 +4322,7 @@ _080E3DE6: .align 2, 0 _080E3E48: .4byte gBattlePartyID _080E3E4C: .4byte gPlayerParty -_080E3E50: .4byte gObjectBankIDs +_080E3E50: .4byte gBankSpriteIds _080E3E54: .4byte gBattle_BG1_X _080E3E58: .4byte gBattle_BG1_Y _080E3E5C: .4byte gTasks diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index ad3f371f5..cee93a9e4 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -323,6 +323,149 @@ sub_809CA8C: @ 809CA8C bx r0 thumb_func_end sub_809CA8C +.if DEBUG + thumb_func_start debug_sub_80AA40C +debug_sub_80AA40C: +.syntax divided + push {lr} + bl sub_809AB8C + lsl r0, r0, #0x10 + cmp r0, #0 + beq ._2084 @cond_branch + bl sub_809CDCC + mov r0, #0x20 + bl sub_809CDEC + mov r0, #0x6 + bl sub_809CDEC + mov r0, #0x1 + b ._2085 +._2084: + mov r0, #0x0 +._2085: + pop {r1} + bx r1 +.syntax unified + thumb_func_end debug_sub_80AA40C +.endif + +.if DEBUG + thumb_func_start sub_809CAB0 +sub_809CAB0: +.syntax divided + push {lr} + ldr r0, ._2088 @ unk_2038790 + ldrb r0, [r0] + cmp r0, #0 + beq ._2086 @cond_branch + bl debug_sub_80AA40C + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + b ._2110 +._2089: + .align 2, 0 +._2088: + .word unk_2038790 +._2086: + bl sub_809CDCC + bl sub_809AB8C + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + ldr r0, ._2094 @ gPokemonStorageSystemPtr + ldr r0, [r0] + ldrb r0, [r0, #0x5] + cmp r0, #0x1 + beq ._2090 @cond_branch + cmp r0, #0x1 + bgt ._2091 @cond_branch + cmp r0, #0 + beq ._2092 @cond_branch + b ._2108 +._2095: + .align 2, 0 +._2094: + .word gPokemonStorageSystemPtr +._2091: + cmp r0, #0x2 + beq ._2096 @cond_branch + b ._2108 +._2090: + cmp r1, #0 + beq ._2108 @cond_branch + mov r0, #0x1 + bl sub_809CDEC + b ._2109 +._2092: + cmp r1, #0 + beq ._2108 @cond_branch + mov r0, #0x2 + bl sub_809CDEC + b ._2109 +._2096: + ldr r0, ._2105 @ gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, #0 + beq ._2102 @cond_branch + cmp r1, #0 + beq ._2103 @cond_branch + mov r0, #0x4 + bl sub_809CDEC + b ._2109 +._2106: + .align 2, 0 +._2105: + .word gUnknown_020384E6 +._2103: + mov r0, #0x5 + bl sub_809CDEC + b ._2109 +._2102: + cmp r1, #0 + beq ._2108 @cond_branch + mov r0, #0x3 + bl sub_809CDEC + b ._2109 +._2108: + mov r0, #0x0 + b ._2110 +._2109: + mov r0, #0x6 + bl sub_809CDEC + ldr r0, ._2114 @ gPokemonStorageSystemPtr + ldr r0, [r0] + ldrb r0, [r0, #0x5] + cmp r0, #0x2 + bne ._2113 @cond_branch + ldr r0, ._2114 + 4 @ gUnknown_020384E4 + ldrb r0, [r0] + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + cmp r0, #0 + bne ._2112 @cond_branch + mov r0, #0x2 + bl sub_809CDEC + b ._2113 +._2115: + .align 2, 0 +._2114: + .word gPokemonStorageSystemPtr + .word gUnknown_020384E4 +._2112: + mov r0, #0x1 + bl sub_809CDEC +._2113: + mov r0, #0x8 + bl sub_809CDEC + mov r0, #0x7 + bl sub_809CDEC + mov r0, #0x0 + bl sub_809CDEC + mov r0, #0x1 +._2110: + pop {r1} + bx r1 +.syntax unified + thumb_func_end sub_809CAB0 +.else thumb_func_start sub_809CAB0 sub_809CAB0: @ 809CAB0 push {lr} @@ -418,6 +561,7 @@ _0809CB6E: pop {r1} bx r1 thumb_func_end sub_809CAB0 +.endif thumb_func_start sub_809CB74 sub_809CB74: @ 809CB74 diff --git a/asm/taya_debug_window.s b/asm/taya_debug_window.s new file mode 100644 index 000000000..68d27390d --- /dev/null +++ b/asm/taya_debug_window.s @@ -0,0 +1,2054 @@ +.if DEBUG + + .include "constants/gba_constants.inc" + .include "include/macros.inc" + + .text + + thumb_func_start TayaDebugMenu_Trend +TayaDebugMenu_Trend: + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, r9 + mov r5, r8 + push {r5, r6, r7} + add sp, sp, #0xffffffd8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1e + mov r3, #0xb + bl Menu_DrawStdWindowFrame + ldr r5, ._3 @ gSaveBlock1 + mov r7, #0x0 + mov r0, #0x1 + add r0, r0, sp + mov sl, r0 + mov r9, sp + mov r0, #0x0 + mov r8, r0 + add r6, sp, #0x20 +._2: + ldrb r1, [r5, #0x1] + mov r0, #0x40 + and r0, r0, r1 + mov r1, #0xa1 + cmp r0, #0 + beq ._1 @cond_branch + mov r1, #0xa2 +._1: + mov r0, r9 + strb r1, [r0] + ldrh r1, [r5, #0x4] + add r0, r6, #0 + bl EasyChat_GetWordText + mov r0, sl + add r1, r6, #0 + mov r2, #0x0 + mov r3, #0x7 + bl StringCopyPadded + add r4, r0, #0 + ldrh r1, [r5, #0x6] + add r0, r6, #0 + bl EasyChat_GetWordText + add r0, r4, #0 + add r1, r6, #0 + mov r2, #0x0 + mov r3, #0x8 + bl StringCopyPadded + add r4, r0, #0 + ldrb r1, [r5] + lsl r1, r1, #0x19 + lsr r1, r1, #0x19 + mov r2, #0x1 + mov r3, #0x3 + bl ConvertIntToDecimalStringN + add r4, r0, #0 + mov r0, r8 + strb r0, [r4] + add r4, r4, #0x1 + ldrh r1, [r5] + lsl r1, r1, #0x12 + lsr r1, r1, #0x19 + add r0, r4, #0 + mov r2, #0x1 + mov r3, #0x3 + bl ConvertIntToDecimalStringN + add r4, r0, #0 + mov r0, r8 + strb r0, [r4] + add r4, r4, #0x1 + ldrh r1, [r5, #0x2] + add r0, r4, #0 + mov r2, #0x1 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + lsl r2, r7, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + mov r0, sp + mov r1, #0x1 + bl Menu_PrintText + add r5, r5, #0x8 + add r0, r7, #1 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + cmp r7, #0x4 + bls ._2 @cond_branch + ldr r1, ._3 + 4 @ gMenuCallback + ldr r0, ._3 + 8 @ debug_sub_8090808 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x28 + pop {r3, r4, r5} + mov r8, r3 + mov r9, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._4: + .align 2, 0 +._3: + .word gSaveBlock1+0x2dd4 + .word gMenuCallback + .word debug_sub_8090808+1 + + thumb_func_end TayaDebugMenu_Trend + + thumb_func_start debug_sub_8090808 +debug_sub_8090808: + push {lr} + ldr r0, ._7 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x3 + and r0, r0, r1 + cmp r0, #0 + bne ._5 @cond_branch + mov r0, #0x0 + b ._6 +._8: + .align 2, 0 +._7: + .word gMain +._5: + bl Menu_EraseScreen + bl CloseMenu + mov r0, #0x1 +._6: + pop {r1} + bx r1 + + thumb_func_end debug_sub_8090808 + + thumb_func_start TayaDebugMenu_TrendR +TayaDebugMenu_TrendR: + push {r4, r5, r6, r7, lr} + mov r0, #0x0 + ldr r7, ._11 @ gSaveBlock1 +._10: + mov r4, #0x0 + lsl r5, r0, #0x3 + add r6, r0, #1 +._9: + bl Random + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x16 + bl __umodsi3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_80EB72C + lsl r1, r4, #0x1 + add r1, r1, r5 + add r1, r1, r7 + strh r0, [r1] + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x1 + bls ._9 @cond_branch + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0x4 + bls ._10 @cond_branch + bl Menu_EraseScreen + bl CloseMenu + mov r0, #0x1 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._12: + .align 2, 0 +._11: + .word gSaveBlock1+0x2dd8 + + thumb_func_end TayaDebugMenu_TrendR + + thumb_func_start debug_sub_8090880 +debug_sub_8090880: + push {lr} + bl UpdatePaletteFade + lsl r0, r0, #0x18 + cmp r0, #0 + beq ._13 @cond_branch + mov r0, #0x0 + b ._14 +._13: + bl sub_80E60D8 + mov r0, #0x1 +._14: + pop {r1} + bx r1 + + thumb_func_end debug_sub_8090880 + + thumb_func_start debug_sub_809089C +debug_sub_809089C: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + beq ._15 @cond_branch + add r0, r0, #0x1 + cmp r1, r0 + bne ._16 @cond_branch + bl CloseMenu + mov r0, #0x1 + b ._17 +._16: + ldr r2, ._19 @ gSpecialVar_0x8004 + ldr r0, ._19 + 4 @ gUnknown_Debug_083C4EC0 + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + strh r0, [r2] + ldrh r0, [r2] + sub r0, r0, #0x5 + cmp r0, #0x7 + bhi ._27 @cond_branch + lsl r0, r0, #0x2 + ldr r1, ._19 + 8 @ + add r0, r0, r1 + ldr r0, [r0] + mov pc, r0 +._20: + .align 2, 0 +._19: + .word gSpecialVar_0x8004 + .word gUnknown_Debug_083C4EC0 + .word ._21 +._21: + .word ._29 + .word ._27 + .word ._29 + .word ._29 + .word ._27 + .word ._27 + .word ._29 + .word ._29 +._29: + ldr r0, ._30 @ gSpecialVar_0x8005 + mov r1, #0x0 + strh r1, [r0] + ldr r0, ._30 + 4 @ gSpecialVar_0x8006 + strh r1, [r0] +._27: + mov r0, #0x1 + mov r1, #0x0 + bl FadeScreen + ldr r1, ._30 + 8 @ gMenuCallback + ldr r0, ._30 + 12 @ debug_sub_8090880 + str r0, [r1] +._15: + mov r0, #0x0 +._17: + pop {r1} + bx r1 +._31: + .align 2, 0 +._30: + .word gSpecialVar_0x8005 + .word gSpecialVar_0x8006 + .word gMenuCallback + .word debug_sub_8090880+1 + + thumb_func_end debug_sub_809089C + + thumb_func_start TayaDebugMenu_SimpleText +TayaDebugMenu_SimpleText: + push {lr} + add sp, sp, #0xfffffff8 + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xc + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._32 @ gUnknown_Debug_083C4EC0 + mov r0, #0x1 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0xb + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._32 + 4 @ gMenuCallback + ldr r0, ._32 + 8 @ debug_sub_809089C + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._33: + .align 2, 0 +._32: + .word gUnknown_Debug_083C4EC0 + .word gMenuCallback + .word debug_sub_809089C+1 + + thumb_func_end TayaDebugMenu_SimpleText + + thumb_func_start debug_sub_8090984 +debug_sub_8090984: + push {r4, r5, r6, r7, lr} + bl Menu_ProcessInput + lsl r2, r0, #0x18 + asr r1, r2, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + beq ._34 @cond_branch + add r0, r0, #0x1 + cmp r1, r0 + beq ._46 @cond_branch + cmp r1, #0x4 + bgt ._36 @cond_branch + lsr r0, r2, #0x18 + bl debug_sub_810B32C + b ._46 +._34: + mov r0, #0x0 + b ._38 +._36: + cmp r1, #0x5 + bne ._39 @cond_branch + bl sub_80F7F30 + b ._46 +._39: + cmp r1, #0x6 + bne ._41 @cond_branch + mov r4, #0x0 + ldr r0, ._44 @ gSaveBlock1 + add r1, r0, #2 + mov ip, r1 + ldr r7, ._44 + 4 @ gUnknown_Debug_083C4F08 + ldr r1, ._44 + 8 @ 0xfffffd94 + add r6, r0, r1 + add r5, r0, #0 + add r5, r5, #0xe +._42: + lsl r1, r4, #0x1 + mov r0, ip + add r3, r1, r0 + add r0, r1, r7 + ldrh r2, [r0] + strh r2, [r3] + add r0, r1, r5 + strh r2, [r0] + add r1, r6, r1 + strh r2, [r1] + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x2 + bls ._42 @cond_branch + b ._46 +._45: + .align 2, 0 +._44: + .word gSaveBlock1+0x2d94 + .word gUnknown_Debug_083C4F08 + .word 0xfffffd94 +._41: + cmp r1, #0x7 + bne ._46 @cond_branch + mov r4, #0x0 +._47: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + bl sub_80EB890 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x20 + bls ._47 @cond_branch +._46: + bl CloseMenu + mov r0, #0x1 +._38: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + + thumb_func_end debug_sub_8090984 + + thumb_func_start TayaDebugMenu_OldMan +TayaDebugMenu_OldMan: + push {lr} + add sp, sp, #0xfffffff8 + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xa + mov r3, #0x11 + bl Menu_DrawStdWindowFrame + ldr r3, ._48 @ gUnknown_Debug_083C4F54 + mov r0, #0x1 + mov r1, #0x1 + mov r2, #0x8 + bl Menu_PrintItems + bl GetCurrentMauvilleOldMan + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x9 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x8 + bl InitMenu + ldr r1, ._48 + 4 @ gMenuCallback + ldr r0, ._48 + 8 @ debug_sub_8090984 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._49: + .align 2, 0 +._48: + .word gUnknown_Debug_083C4F54 + .word gMenuCallback + .word debug_sub_8090984+1 + + thumb_func_end TayaDebugMenu_OldMan + + thumb_func_start TayaDebugMenu_LanettesPC +TayaDebugMenu_LanettesPC: + push {lr} + bl Menu_EraseScreen + bl ShowPokemonStorageSystem + mov r0, #0x1 + pop {r1} + bx r1 + + thumb_func_end TayaDebugMenu_LanettesPC + + thumb_func_start TayaDebugMenu_TownFlags +TayaDebugMenu_TownFlags: + push {lr} + ldr r0, ._50 @ 0x80f + bl FlagSet + mov r0, #0x81 + lsl r0, r0, #0x4 + bl FlagSet + ldr r0, ._50 + 4 @ 0x811 + bl FlagSet + ldr r0, ._50 + 8 @ 0x812 + bl FlagSet + ldr r0, ._50 + 12 @ 0x813 + bl FlagSet + ldr r0, ._50 + 16 @ 0x814 + bl FlagSet + ldr r0, ._50 + 20 @ 0x815 + bl FlagSet + ldr r0, ._50 + 24 @ 0x816 + bl FlagSet + ldr r0, ._50 + 28 @ 0x817 + bl FlagSet + ldr r0, ._50 + 32 @ 0x818 + bl FlagSet + ldr r0, ._50 + 36 @ 0x819 + bl FlagSet + ldr r0, ._50 + 40 @ 0x81a + bl FlagSet + ldr r0, ._50 + 44 @ 0x81b + bl FlagSet + ldr r0, ._50 + 48 @ 0x81c + bl FlagSet + ldr r0, ._50 + 52 @ 0x81d + bl FlagSet + ldr r0, ._50 + 56 @ 0x81e + bl FlagSet + ldr r0, ._50 + 60 @ 0x848 + bl FlagSet + ldr r0, ._50 + 64 @ 0x849 + bl FlagSet + ldr r0, ._50 + 68 @ 0x84a + bl FlagSet + ldr r0, ._50 + 72 @ 0x854 + bl FlagSet + ldr r0, ._50 + 76 @ 0x855 + bl FlagSet + ldr r0, ._50 + 80 @ 0x856 + bl FlagSet + ldr r0, ._50 + 84 @ 0x857 + bl FlagSet + ldr r0, ._50 + 88 @ 0x858 + bl FlagSet + ldr r0, ._50 + 92 @ 0x859 + bl FlagSet + ldr r0, ._50 + 96 @ 0x85a + bl FlagSet + ldr r0, ._50 + 100 @ 0x85b + bl FlagSet + ldr r0, ._50 + 104 @ 0x85c + bl FlagSet + ldr r0, ._50 + 108 @ 0x83c + bl FlagSet + ldr r0, ._50 + 112 @ 0x83d + bl FlagSet + ldr r0, ._50 + 116 @ 0x83e + bl FlagSet + ldr r0, ._50 + 120 @ 0x83f + bl FlagSet + mov r0, #0x84 + lsl r0, r0, #0x4 + bl FlagSet + ldr r0, ._50 + 124 @ 0x841 + bl FlagSet + ldr r0, ._50 + 128 @ 0x842 + bl FlagSet + ldr r0, ._50 + 132 @ 0x843 + bl FlagSet + ldr r0, ._50 + 136 @ 0x844 + bl FlagSet + ldr r0, ._50 + 140 @ 0x845 + bl FlagSet + ldr r0, ._50 + 144 @ 0x846 + bl FlagSet + ldr r0, ._50 + 148 @ 0x847 + bl FlagSet + ldr r0, ._50 + 152 @ 0x83b + bl FlagSet + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._51: + .align 2, 0 +._50: + .word 0x80f + .word 0x811 + .word 0x812 + .word 0x813 + .word 0x814 + .word 0x815 + .word 0x816 + .word 0x817 + .word 0x818 + .word 0x819 + .word 0x81a + .word 0x81b + .word 0x81c + .word 0x81d + .word 0x81e + .word 0x848 + .word 0x849 + .word 0x84a + .word 0x854 + .word 0x855 + .word 0x856 + .word 0x857 + .word 0x858 + .word 0x859 + .word 0x85a + .word 0x85b + .word 0x85c + .word 0x83c + .word 0x83d + .word 0x83e + .word 0x83f + .word 0x841 + .word 0x842 + .word 0x843 + .word 0x844 + .word 0x845 + .word 0x846 + .word 0x847 + .word 0x83b + + thumb_func_end TayaDebugMenu_TownFlags + + thumb_func_start TayaDebugMenu_AwardARibbon +TayaDebugMenu_AwardARibbon: + push {lr} + mov r0, #0x1 + neg r0, r0 + mov r1, #0x10 + mov r2, #0x0 + bl BlendPalettes + ldr r0, ._52 @ debug_sub_80915BC + bl SetMainCallback2 + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._53: + .align 2, 0 +._52: + .word debug_sub_80915BC+1 + + thumb_func_end TayaDebugMenu_AwardARibbon + + thumb_func_start debug_sub_8090C44 +debug_sub_8090C44: + push {r4, r5, lr} + ldr r4, ._54 @ gSharedMem + sub r5, r4, #1 + ldrh r1, [r5, #0x8] + add r0, r4, #0 + mov r2, #0x2 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r4, #0 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0x0 + mov r2, #0x5 + bl StringFill + ldrb r0, [r5] + add r0, r0, r4 + mov r1, #0x79 + strb r1, [r0] + add r0, r4, #0 + mov r1, #0x1 + mov r2, #0x3 + bl Menu_PrintText + pop {r4, r5} + pop {r0} + bx r0 +._55: + .align 2, 0 +._54: + .word gSharedMem+1 + + thumb_func_end debug_sub_8090C44 + + thumb_func_start debug_sub_8090C88 +debug_sub_8090C88: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + add sp, sp, #0xfffffffc + mov r0, #0x1 + mov r8, r0 + ldr r2, ._59 @ gMain + ldrh r1, [r2, #0x2e] + mov r0, #0x20 + and r0, r0, r1 + add r3, r2, #0 + cmp r0, #0 + beq ._57 @cond_branch + ldr r1, ._59 + 4 @ gSharedMem + ldrb r0, [r1] + cmp r0, #0 + beq ._57 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1] + b ._62 +._60: + .align 2, 0 +._59: + .word gMain + .word gSharedMem +._67: + add r0, r0, #0x1 + strb r0, [r1] + b ._62 +._77: + strh r1, [r7, #0x8] + b ._62 +._79: + ldr r0, ._64 @ gSharedMem + ldrh r0, [r0, #0x8] + bl SetLotteryNumber16_Unused +._78: + bl CloseMenu + mov r0, #0x1 + b ._63 +._65: + .align 2, 0 +._64: + .word gSharedMem +._57: + ldrh r1, [r3, #0x2e] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._66 @cond_branch + ldr r1, ._81 @ gSharedMem + ldrb r0, [r1] + cmp r0, #0x3 + bls ._67 @cond_branch +._66: + ldrh r1, [r3, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._68 @cond_branch + ldr r0, ._81 @ gSharedMem + ldrh r1, [r0, #0x8] + str r1, [r0, #0xc] + ldr r1, ._81 + 4 @ 0x2710 + strh r1, [r0, #0x10] + mov r4, #0x0 + ldrb r1, [r0] + add r7, r0, #0 + cmp r4, r1 + bcs ._69 @cond_branch + add r5, r7, #0 + add r6, r1, #0 +._70: + ldrh r0, [r5, #0x10] + mov r1, #0xa + str r3, [sp] + bl __udivsi3 + strh r0, [r5, #0x10] + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r3, [sp] + cmp r4, r6 + bcc ._70 @cond_branch +._69: + ldrh r1, [r7, #0x10] + ldr r0, [r7, #0xc] + add r0, r0, r1 + str r0, [r7, #0xc] + ldr r1, ._81 + 8 @ 0xffff + cmp r0, r1 + ble ._71 @cond_branch + str r1, [r7, #0xc] +._71: + ldrh r0, [r7, #0x8] + ldr r1, [r7, #0xc] + cmp r0, r1 + bne ._77 @cond_branch +._68: + ldrh r1, [r3, #0x30] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._73 @cond_branch + ldr r0, ._81 @ gSharedMem + ldrh r1, [r0, #0x8] + str r1, [r0, #0xc] + ldr r1, ._81 + 4 @ 0x2710 + strh r1, [r0, #0x10] + mov r4, #0x0 + ldrb r1, [r0] + add r7, r0, #0 + cmp r4, r1 + bcs ._74 @cond_branch + add r5, r7, #0 + add r6, r1, #0 +._75: + ldrh r0, [r5, #0x10] + mov r1, #0xa + str r3, [sp] + bl __udivsi3 + strh r0, [r5, #0x10] + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r3, [sp] + cmp r4, r6 + bcc ._75 @cond_branch +._74: + add r2, r7, #0 + ldrh r1, [r2, #0x10] + ldr r0, [r2, #0xc] + sub r0, r0, r1 + str r0, [r2, #0xc] + cmp r0, #0 + bge ._76 @cond_branch + mov r0, #0x0 + str r0, [r2, #0xc] +._76: + ldrh r0, [r2, #0x8] + ldr r1, [r2, #0xc] + cmp r0, r1 + bne ._77 @cond_branch +._73: + ldrh r2, [r3, #0x2e] + mov r0, #0x2 + and r0, r0, r2 + cmp r0, #0 + bne ._78 @cond_branch + mov r0, #0x1 + and r0, r0, r2 + cmp r0, #0 + bne ._79 @cond_branch + mov r0, #0x0 + mov r8, r0 +._62: + mov r0, r8 + cmp r0, #0 + beq ._80 @cond_branch + bl debug_sub_8090C44 +._80: + mov r0, #0x0 +._63: + add sp, sp, #0x4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._82: + .align 2, 0 +._81: + .word gSharedMem + .word 0x2710 + .word 0xffff + + thumb_func_end debug_sub_8090C88 + + thumb_func_start TayaDebugMenu_PKMNLottery +TayaDebugMenu_PKMNLottery: + push {lr} + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x6 + mov r3, #0x5 + bl Menu_DrawStdWindowFrame + bl RetrieveLotteryNumber + ldr r2, ._83 @ gSharedMem + ldr r0, ._83 + 4 @ gSpecialVar_Result + ldrh r0, [r0] + mov r1, #0x0 + strh r0, [r2, #0x8] + strb r1, [r2] + bl debug_sub_8090C44 + ldr r1, ._83 + 8 @ gMenuCallback + ldr r0, ._83 + 12 @ debug_sub_8090C88 + str r0, [r1] + mov r0, #0x0 + pop {r1} + bx r1 +._84: + .align 2, 0 +._83: + .word gSharedMem + .word gSpecialVar_Result + .word gMenuCallback + .word debug_sub_8090C88+1 + + thumb_func_end TayaDebugMenu_PKMNLottery + + thumb_func_start TayaDebugMenu_Trainer +TayaDebugMenu_Trainer: + push {r4, r5, lr} + mov r4, #0x0 + ldr r5, ._86 @ gTrainerEyeTrainers +._85: + lsl r0, r4, #0x4 + add r0, r0, r5 + ldrh r0, [r0] + bl SetTrainerFlag + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x37 + bls ._85 @cond_branch + ldr r0, ._86 + 4 @ 0x109 + bl SetTrainerFlag + mov r0, #0x85 + lsl r0, r0, #0x1 + bl SetTrainerFlag + ldr r0, ._86 + 8 @ 0x10b + bl SetTrainerFlag + mov r0, #0x86 + lsl r0, r0, #0x1 + bl SetTrainerFlag + ldr r0, ._86 + 12 @ 0x10d + bl SetTrainerFlag + mov r0, #0x87 + lsl r0, r0, #0x1 + bl SetTrainerFlag + ldr r0, ._86 + 16 @ 0x10f + bl SetTrainerFlag + mov r0, #0x88 + lsl r0, r0, #0x1 + bl SetTrainerFlag + ldr r0, ._86 + 20 @ 0x105 + bl SetTrainerFlag + mov r0, #0x83 + lsl r0, r0, #0x1 + bl SetTrainerFlag + ldr r0, ._86 + 24 @ 0x107 + bl SetTrainerFlag + mov r0, #0x84 + lsl r0, r0, #0x1 + bl SetTrainerFlag + ldr r0, ._86 + 28 @ 0x14f + bl SetTrainerFlag + bl CloseMenu + mov r0, #0x1 + pop {r4, r5} + pop {r1} + bx r1 +._87: + .align 2, 0 +._86: + .word gTrainerEyeTrainers + .word 0x109 + .word 0x10b + .word 0x10d + .word 0x10f + .word 0x105 + .word 0x107 + .word 0x14f + + thumb_func_end TayaDebugMenu_Trainer + + thumb_func_start TayaDebugMenu_PokenavD +TayaDebugMenu_PokenavD: + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, r9 + mov r5, r8 + push {r5, r6, r7} + add sp, sp, #0xffffffe4 + bl Menu_DisplayDialogueFrame + mov r0, #0x0 + mov sl, r0 + mov r6, #0x1 + mov r7, #0xff + mov r1, #0x3 + mov r9, r1 +._93: + ldr r4, ._94 @ gSharedMem + add r0, r4, #0 + ldr r1, ._94 + 4 @ gUnknown_Debug_083C4F94 + bl StringCopy + mov r5, sl + add r5, r5, #0x1 + add r1, r5, r4 + mov r0, #0xff + strb r0, [r1] + add r0, r4, #0 + mov r1, #0x2 + mov r2, #0xf + bl Menu_PrintText + mov r0, #0x0 + mov r8, r0 + str r5, [sp, #0x14] + mov r1, sl + lsl r1, r1, #0x2 + str r1, [sp, #0x18] +._91: + bl Random + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add r0, r0, #0x1 + str r0, [sp, #0x10] + bl Random + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x64 + bl __umodsi3 + add r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + bl Random + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0xc1 + lsl r1, r1, #0x1 + bl __umodsi3 + add r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + cmp r3, #0xfb + bls ._89 @cond_branch + add r0, r3, #0 + add r0, r0, #0x19 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + ldr r0, ._94 + 8 @ 0x19b + cmp r3, r0 + bls ._89 @cond_branch + mov r3, #0x1 +._89: + ldr r0, [sp, #0x18] + add r0, r0, sl + lsl r4, r0, #0x4 + sub r4, r4, r0 + lsl r4, r4, #0x5 + mov r1, r8 + lsl r0, r1, #0x2 + add r0, r0, r8 + lsl r0, r0, #0x4 + ldr r1, ._94 + 12 @ gPokemonStorage + add r0, r0, r1 + add r4, r4, r0 + lsl r2, r5, #0x18 + lsr r2, r2, #0x18 + mov r0, #0x0 + str r0, [sp] + str r0, [sp, #0x4] + str r6, [sp, #0x8] + ldr r0, [sp, #0x10] + str r0, [sp, #0xc] + add r0, r4, #0 + add r1, r3, #0 + mov r3, #0x20 + bl CreateBoxMon + bl Random + add r1, r7, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x16 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r7, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x17 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r7, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x18 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r7, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x21 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r7, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x2f + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r7, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x30 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + mov r1, r9 + and r1, r1, r0 + add r1, r1, #0x1 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x32 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + mov r1, r9 + and r1, r1, r0 + add r1, r1, #0x1 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x33 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + mov r1, r9 + and r1, r1, r0 + add r1, r1, #0x1 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x34 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + mov r1, r9 + and r1, r1, r0 + add r1, r1, #0x1 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x36 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + mov r1, r9 + and r1, r1, r0 + add r1, r1, #0x1 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x35 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x43 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x44 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x45 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x46 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x47 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x48 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x49 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x4a + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x4b + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x4c + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x4d + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x4e + add r2, sp, #0x10 + bl SetBoxMonData + mov r0, r8 + add r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r8, r0 + cmp r0, #0x1d + bhi ._90 @cond_branch + b ._91 +._90: + ldr r1, [sp, #0x14] + lsl r0, r1, #0x10 + lsr r0, r0, #0x10 + mov sl, r0 + cmp r0, #0xd + bhi ._92 @cond_branch + b ._93 +._92: + bl TayaDebugMenu_TownFlags + bl TayaDebugMenu_Trainer + bl CloseMenu + mov r0, #0x1 + add sp, sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov r9, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._95: + .align 2, 0 +._94: + .word gSharedMem + .word gUnknown_Debug_083C4F94 + .word 0x19b + .word gPokemonStorage+0x4 + + thumb_func_end TayaDebugMenu_PokenavD + + thumb_func_start TayaDebugMenu_8091190 +TayaDebugMenu_8091190: + push {r4, r5, lr} + add sp, sp, #0xfffffff8 + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r3, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r3, r0 + beq ._96 @cond_branch + add r0, r0, #0x1 + cmp r3, r0 + beq ._97 @cond_branch + ldr r2, ._99 @ gMenuCallback + ldr r1, ._99 + 4 @ gUnknown_Debug_83C5068 + ldr r0, ._99 + 8 @ unk_2030224 + ldrb r0, [r0] + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, [r0] + lsl r0, r3, #0x3 + add r0, r0, r1 + ldr r0, [r0, #0x4] + str r0, [r2] +._106: + mov r0, #0x0 + b ._98 +._100: + .align 2, 0 +._99: + .word gMenuCallback + .word gUnknown_Debug_83C5068 + .word unk_2030224 +._96: + ldr r3, ._107 @ unk_2030224 + ldrb r4, [r3] + ldr r2, ._107 + 4 @ gMain + ldrh r1, [r2, #0x2e] + mov r0, #0x20 + and r0, r0, r1 + add r5, r3, #0 + cmp r0, #0 + beq ._102 @cond_branch + sub r0, r4, #1 + strb r0, [r5] + lsl r0, r0, #0x18 + cmp r0, #0 + bge ._102 @cond_branch + mov r0, #0x1 + strb r0, [r5] +._102: + ldrh r1, [r2, #0x2e] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._104 @cond_branch + ldrb r0, [r5] + add r0, r0, #0x1 + strb r0, [r5] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x1 + bls ._104 @cond_branch + mov r0, #0x0 + strb r0, [r5] +._104: + lsl r0, r4, #0x18 + asr r0, r0, #0x18 + mov r1, #0x0 + ldrsb r1, [r5, r1] + cmp r0, r1 + beq ._106 @cond_branch + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xb + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r4, ._107 + 8 @ gUnknown_Debug_83C5068 + mov r0, #0x0 + ldrsb r0, [r5, r0] + lsl r0, r0, #0x3 + add r0, r0, r4 + ldrb r2, [r0, #0x4] + ldr r3, [r0] + mov r0, #0x1 + mov r1, #0x1 + bl Menu_PrintItems + mov r0, #0x0 + ldrsb r0, [r5, r0] + lsl r0, r0, #0x3 + add r0, r0, r4 + ldrb r3, [r0, #0x4] + mov r0, #0x0 + str r0, [sp] + mov r0, #0xa + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + bl InitMenu + b ._106 +._108: + .align 2, 0 +._107: + .word unk_2030224 + .word gMain + .word gUnknown_Debug_83C5068 +._97: + bl CloseMenu + mov r0, #0x1 +._98: + add sp, sp, #0x8 + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_end TayaDebugMenu_8091190 + + thumb_func_start InitTayaDebugWindow +InitTayaDebugWindow: + push {lr} + add sp, sp, #0xfffffff8 + ldr r1, ._109 @ unk_2030224 + mov r0, #0x0 + strb r0, [r1] + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xb + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r0, ._109 + 4 @ gUnknown_Debug_83C5068 + ldr r3, [r0] + mov r0, #0x1 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0xa + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._109 + 8 @ gMenuCallback + ldr r0, ._109 + 12 @ TayaDebugMenu_8091190 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._110: + .align 2, 0 +._109: + .word unk_2030224 + .word gUnknown_Debug_83C5068 + .word gMenuCallback + .word TayaDebugMenu_8091190+1 + + thumb_func_end InitTayaDebugWindow + + thumb_func_start debug_sub_80912D8 +debug_sub_80912D8: + push {lr} + ldr r0, ._113 @ gPaletteFade + ldrb r1, [r0, #0x7] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._111 @cond_branch + mov r0, #0x0 + b ._112 +._114: + .align 2, 0 +._113: + .word gPaletteFade +._111: + ldr r0, ._115 @ debug_sub_8110F28 + bl SetMainCallback2 + mov r0, #0x1 +._112: + pop {r1} + bx r1 +._116: + .align 2, 0 +._115: + .word debug_sub_8110F28+1 + + thumb_func_end debug_sub_80912D8 + + thumb_func_start debug_sub_8091300 +debug_sub_8091300: + push {lr} + mov r0, #0x1 + mov r1, #0x0 + bl FadeScreen + ldr r1, ._117 @ gMenuCallback + ldr r0, ._117 + 4 @ debug_sub_80912D8 + str r0, [r1] + mov r0, #0x0 + pop {r1} + bx r1 +._118: + .align 2, 0 +._117: + .word gMenuCallback + .word debug_sub_80912D8+1 + + thumb_func_end debug_sub_8091300 + + thumb_func_start debug_sub_8091320 +debug_sub_8091320: + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + + thumb_func_end debug_sub_8091320 + + thumb_func_start debug_sub_8091334 +debug_sub_8091334: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + bl AnimateSprites + bl BuildOamBuffer + ldr r3, ._123 @ gSharedMem + add r0, r3, #0 + add r0, r0, #0x52 + ldrb r4, [r0] + cmp r4, #0 + beq ._119 @cond_branch + cmp r4, #0x1 + bne ._120 @cond_branch + b ._121 +._120: + b ._162 +._124: + .align 2, 0 +._123: + .word gSharedMem +._119: + add r5, r3, #0 + add r5, r5, #0x55 + strb r4, [r5] + ldr r2, ._131 @ gMain + ldrh r1, [r2, #0x2e] + mov r0, #0x40 + and r0, r0, r1 + mov r9, r2 + cmp r0, #0 + beq ._126 @cond_branch + add r1, r3, #0 + add r1, r1, #0x54 + ldrb r0, [r1] + cmp r0, #0 + beq ._126 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1] + mov r0, #0x1 + strb r0, [r5] +._126: + mov r0, r9 + ldrh r1, [r0, #0x2e] + mov r0, #0x80 + and r0, r0, r1 + ldr r5, ._131 + 4 @ gSharedMem + cmp r0, #0 + beq ._133 @cond_branch + add r0, r5, #0 + add r0, r0, #0x53 + ldrb r0, [r0] + cmp r0, #0x2 + beq ._128 @cond_branch + add r1, r5, #0 + add r1, r1, #0x54 + ldrb r0, [r1] + cmp r0, #0x4 + bhi ._133 @cond_branch + b ._130 +._132: + .align 2, 0 +._131: + .word gMain + .word gSharedMem +._128: + add r1, r5, #0 + add r1, r1, #0x54 + ldrb r0, [r1] + cmp r0, #0x3 + bhi ._133 @cond_branch +._130: + add r0, r0, #0x1 + strb r0, [r1] + add r1, r1, #0x1 + mov r0, #0x1 + strb r0, [r1] +._133: + mov r2, r9 + ldrh r1, [r2, #0x2e] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._135 @cond_branch + add r1, r5, #0 + add r1, r1, #0x53 + ldrb r0, [r1] + cmp r0, #0 + beq ._135 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1] + add r1, r1, #0x2 + mov r0, #0x1 + strb r0, [r1] +._135: + mov r3, r9 + ldrh r1, [r3, #0x2e] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._140 @cond_branch + add r0, r5, #0 + add r0, r0, #0x54 + ldrb r0, [r0] + cmp r0, #0x5 + beq ._137 @cond_branch + add r1, r5, #0 + add r1, r1, #0x53 + ldrb r0, [r1] + cmp r0, #0x1 + bhi ._140 @cond_branch + b ._139 +._137: + add r1, r5, #0 + add r1, r1, #0x53 + ldrb r0, [r1] + cmp r0, #0 + bne ._140 @cond_branch +._139: + add r0, r0, #0x1 + strb r0, [r1] + add r1, r1, #0x2 + mov r0, #0x1 + strb r0, [r1] +._140: + add r0, r5, #0 + add r0, r0, #0x55 + ldrb r0, [r0] + cmp r0, #0 + bne ._141 @cond_branch + mov r0, r9 + ldrh r2, [r0, #0x2e] + mov r0, #0x1 + and r0, r0, r2 + cmp r0, #0 + beq ._142 @cond_branch + ldr r2, ._145 @ gUnknown_Debug_083C50EC + add r3, r5, #0 + add r3, r3, #0x53 + add r0, r5, #0 + add r0, r0, #0x54 + ldrb r1, [r0] + lsl r0, r1, #0x1 + add r0, r0, r1 + ldrb r3, [r3] + add r0, r0, r3 + lsl r0, r0, #0x3 + add r0, r0, r2 + ldrh r0, [r0, #0x4] + sub r0, r0, #0x32 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0x4 + bhi ._143 @cond_branch + add r1, r5, #0 + add r1, r1, #0x56 + mov r0, #0x4 + b ._144 +._146: + .align 2, 0 +._145: + .word gUnknown_Debug_083C50EC +._143: + add r1, r5, #0 + add r1, r1, #0x56 + mov r0, #0x1 +._144: + strb r0, [r1] + add r1, r5, #0 + add r1, r1, #0x52 + mov r0, #0x1 + strb r0, [r1] + b ._162 +._142: + mov r0, #0x2 + and r0, r0, r2 + cmp r0, #0 + bne ._148 @cond_branch + b ._162 +._148: + mov r0, #0x1 + neg r0, r0 + mov r1, #0x10 + mov r2, #0x0 + bl BlendPalettes + ldr r0, ._151 @ sub_80546F0 + bl SetMainCallback2 + b ._162 +._152: + .align 2, 0 +._151: + .word sub_80546F0+1 +._121: + add r5, r3, #0 + add r5, r5, #0x55 + mov r0, #0x0 + strb r0, [r5] + ldr r2, ._159 @ gMain + ldrh r1, [r2, #0x2e] + mov r0, #0x40 + and r0, r0, r1 + mov r9, r2 + cmp r0, #0 + beq ._154 @cond_branch + add r2, r3, #0 + add r2, r2, #0x53 + add r0, r3, #0 + add r0, r0, #0x54 + ldrb r1, [r0] + lsl r0, r1, #0x1 + add r0, r0, r1 + ldrb r2, [r2] + add r0, r0, r2 + add r2, r0, r3 + add r0, r3, #0 + add r0, r0, #0x56 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bcs ._154 @cond_branch + add r0, r1, #1 + strb r0, [r2] + strb r4, [r5] +._154: + mov r2, r9 + ldrh r1, [r2, #0x2e] + mov r0, #0x80 + and r0, r0, r1 + ldr r5, ._159 + 4 @ gSharedMem + cmp r0, #0 + beq ._156 @cond_branch + add r2, r5, #0 + add r2, r2, #0x53 + add r0, r5, #0 + add r0, r0, #0x54 + ldrb r1, [r0] + lsl r0, r1, #0x1 + add r0, r0, r1 + ldrb r2, [r2] + add r0, r0, r2 + add r1, r0, r5 + ldrb r0, [r1] + cmp r0, #0 + beq ._156 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1] + add r1, r5, #0 + add r1, r1, #0x55 + mov r0, #0x1 + strb r0, [r1] +._156: + add r6, r5, #0 + add r0, r6, #0 + add r0, r0, #0x55 + ldrb r7, [r0] + cmp r7, #0 + beq ._157 @cond_branch +._141: + bl debug_sub_80916AC + b ._162 +._160: + .align 2, 0 +._159: + .word gMain + .word gSharedMem +._157: + mov r3, r9 + ldrh r1, [r3, #0x2e] + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._161 @cond_branch + ldr r0, ._164 @ gPlayerParty + ldr r1, ._164 + 4 @ gUnknown_Debug_083C50EC + mov ip, r1 + mov r2, #0x53 + add r2, r2, r6 + mov r8, r2 + add r4, r6, #0 + add r4, r4, #0x54 + ldrb r2, [r4] + lsl r1, r2, #0x1 + add r1, r1, r2 + mov r3, r8 + ldrb r3, [r3] + add r1, r1, r3 + lsl r1, r1, #0x3 + add r1, r1, ip + ldrh r1, [r1, #0x4] + bl GetMonData + ldrb r2, [r4] + lsl r1, r2, #0x1 + add r1, r1, r2 + mov r2, r8 + ldrb r2, [r2] + add r1, r1, r2 + add r1, r1, r6 + strb r0, [r1] + bl debug_sub_80916AC + add r0, r6, #0 + add r0, r0, #0x52 + strb r7, [r0] +._161: + mov r3, r9 + ldrh r1, [r3, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._162 @cond_branch + ldr r2, ._164 + 4 @ gUnknown_Debug_083C50EC + add r0, r6, #0 + add r0, r0, #0x53 + ldrb r4, [r0] + add r0, r0, #0x1 + ldrb r1, [r0] + lsl r0, r1, #0x1 + add r3, r0, r1 + add r0, r3, r4 + lsl r0, r0, #0x3 + add r1, r0, r2 + ldrh r0, [r1, #0x4] + cmp r0, #0 + beq ._163 @cond_branch + ldr r0, ._164 @ gPlayerParty + ldrh r1, [r1, #0x4] + add r2, r4, r6 + add r2, r3, r2 + bl SetMonData +._163: + add r0, r5, #0 + add r0, r0, #0x52 + strb r7, [r0] +._162: + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._165: + .align 2, 0 +._164: + .word gPlayerParty + .word gUnknown_Debug_083C50EC + + thumb_func_end debug_sub_8091334 + + thumb_func_start debug_sub_80915BC +debug_sub_80915BC: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, ._168 @ 0x4000010 + mov r1, #0x0 + strh r1, [r0] + add r0, r0, #0x2 + strh r1, [r0] + mov r1, #0x0 + ldr r0, ._168 + 4 @ gUnknown_Debug_083C50EC + mov r8, r0 + ldr r7, ._168 + 8 @ gSharedMem +._171: + mov r4, #0x0 + lsl r0, r1, #0x1 + add r6, r1, #1 + add r5, r0, r1 +._170: + add r0, r5, r4 + lsl r0, r0, #0x3 + add r0, r0, r8 + ldrh r1, [r0, #0x4] + cmp r1, #0 + beq ._166 @cond_branch + ldr r0, ._168 + 12 @ gPlayerParty + bl GetMonData + add r1, r4, r5 + add r1, r1, r7 + strb r0, [r1] + b ._167 +._169: + .align 2, 0 +._168: + .word 0x4000010 + .word gUnknown_Debug_083C50EC + .word gSharedMem + .word gPlayerParty +._166: + add r0, r4, r5 + add r0, r0, r7 + strb r1, [r0] +._167: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x2 + bls ._170 @cond_branch + lsl r0, r6, #0x18 + lsr r1, r0, #0x18 + cmp r1, #0x5 + bls ._171 @cond_branch + ldr r4, ._172 @ gWindowTemplate_81E7224 + add r0, r4, #0 + bl Text_LoadWindowTemplate + add r0, r4, #0 + bl InitMenuWindow + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x3 + bl Menu_DrawStdWindowFrame + ldr r0, ._172 + 4 @ gUnknown_Debug_083C517C + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + mov r0, #0x0 + mov r1, #0x4 + mov r2, #0x1d + mov r3, #0x11 + bl Menu_DrawStdWindowFrame + mov r0, #0x0 + mov r1, #0x12 + mov r2, #0x1d + mov r3, #0x15 + bl Menu_DrawStdWindowFrame + mov r1, #0x80 + lsl r1, r1, #0x13 + mov r2, #0x8a + lsl r2, r2, #0x5 + add r0, r2, #0 + strh r0, [r1] + ldr r2, ._172 + 8 @ gSharedMem + add r0, r2, #0 + add r0, r0, #0x53 + mov r1, #0x0 + strb r1, [r0] + add r0, r0, #0x1 + strb r1, [r0] + sub r0, r0, #0x2 + strb r1, [r0] + bl debug_sub_80916AC + ldr r0, ._172 + 12 @ debug_sub_8091320 + bl SetVBlankCallback + ldr r0, ._172 + 16 @ debug_sub_8091334 + bl SetMainCallback2 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._173: + .align 2, 0 +._172: + .word gWindowTemplate_81E7224 + .word gUnknown_Debug_083C517C + .word gSharedMem + .word debug_sub_8091320+1 + .word debug_sub_8091334+1 + + thumb_func_end debug_sub_80915BC + + thumb_func_start debug_sub_80916AC +debug_sub_80916AC: + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, r9 + mov r5, r8 + push {r5, r6, r7} + add sp, sp, #0xfffffffc + mov r6, #0x0 + ldr r0, ._177 @ gSharedMem + mov sl, r0 + mov r1, #0x0 + mov r8, r1 +._182: + ldr r2, ._177 + 4 @ gSharedMem + mov r5, #0x0 + lsl r0, r6, #0x1 + mov r9, r0 + add r1, r6, #1 + str r1, [sp] +._181: + mov r0, sl + add r0, r0, #0x53 + ldrb r0, [r0] + cmp r0, r5 + bne ._175 @cond_branch + ldr r1, ._177 + 8 @ gSharedMem + ldrb r0, [r1] + cmp r0, r6 + bne ._175 @cond_branch + mov r0, #0xef + b ._176 +._178: + .align 2, 0 +._177: + .word gSharedMem + .word gSharedMem+0x12 + .word gSharedMem+0x54 +._175: + mov r0, r8 + strb r0, [r2] + add r2, r2, #0x1 +._176: + strb r0, [r2] + add r2, r2, #0x1 + mov r1, r9 + add r4, r1, r6 + add r0, r4, r5 + lsl r0, r0, #0x3 + ldr r1, ._183 @ gUnknown_Debug_083C50EC + add r0, r0, r1 + ldr r1, [r0] + add r0, r2, #0 + bl StringCopy + add r2, r0, #0 + mov r0, r8 + strb r0, [r2] + add r2, r2, #0x1 + ldr r7, ._183 + 4 @ gSharedMem + add r4, r5, r4 + add r4, r4, r7 + ldrb r1, [r4] + add r0, r2, #0 + mov r2, #0x0 + mov r3, #0x1 + bl ConvertIntToDecimalStringN + add r2, r0, #0 + mov r1, r8 + strb r1, [r2] + add r2, r2, #0x1 + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x2 + bhi ._179 @cond_branch + cmp r6, #0x5 + bne ._181 @cond_branch + cmp r5, #0x2 + bne ._181 @cond_branch +._179: + sub r1, r2, #1 + mov r0, #0xff + strb r0, [r1] + mov r2, r9 + add r2, r2, #0x5 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + add r0, r7, #0 + add r0, r0, #0x12 + mov r1, #0x1 + bl Menu_PrintText + ldr r1, [sp] + lsl r0, r1, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x5 + bls ._182 @cond_branch + add sp, sp, #0x4 + pop {r3, r4, r5} + mov r8, r3 + mov r9, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._184: + .align 2, 0 +._183: + .word gUnknown_Debug_083C50EC + .word gSharedMem + + thumb_func_end debug_sub_80916AC + + .align 2, 0 + +.endif diff --git a/asm/unk_debug_menu_3.s b/asm/unk_debug_menu_3.s new file mode 100644 index 000000000..aa156a99b --- /dev/null +++ b/asm/unk_debug_menu_3.s @@ -0,0 +1,747 @@ +.if DEBUG + + .include "constants/gba_constants.inc" + .include "include/macros.inc" + + .text + + thumb_func_start debug_sub_813C404 +debug_sub_813C404: + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r5, ._1 @ gUnknown_Debug_845DDB2 + ldr r4, ._1 + 4 @ gUnknown_Debug_845DAE1 + sub r5, r5, r4 + add r1, r4, #0 + add r2, r5, #0 + bl memcpy + add r0, r6, #0 + add r1, r4, #0 + bl unref_sub_812620C + add r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 +._2: + .align 2, 0 +._1: + .word gUnknown_Debug_845DDB2 + .word gUnknown_Debug_845DAE1 + + thumb_func_end debug_sub_813C404 + + thumb_func_start debug_sub_813C430 +debug_sub_813C430: + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r5, ._3 @ gUnknown_Debug_845E402 + ldr r4, ._3 + 4 @ gUnknown_Debug_845E3E0 + sub r5, r5, r4 + add r1, r4, #0 + add r2, r5, #0 + bl memcpy + add r0, r6, #0 + add r1, r4, #0 + bl unref_sub_812620C + add r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 +._4: + .align 2, 0 +._3: + .word gUnknown_Debug_845E402 + .word gUnknown_Debug_845E3E0 + + thumb_func_end debug_sub_813C430 + + thumb_func_start debug_sub_813C45C +debug_sub_813C45C: + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r5, ._5 @ gUnknown_Debug_845E443 + ldr r4, ._5 + 4 @ gUnknown_Debug_845E422 + sub r5, r5, r4 + add r1, r4, #0 + add r2, r5, #0 + bl memcpy + add r0, r6, #0 + add r1, r4, #0 + bl unref_sub_812620C + add r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 +._6: + .align 2, 0 +._5: + .word gUnknown_Debug_845E443 + .word gUnknown_Debug_845E422 + + thumb_func_end debug_sub_813C45C + + thumb_func_start debug_sub_813C488 +debug_sub_813C488: + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r5, ._7 @ gUnknown_Debug_845E422 + ldr r4, ._7 + 4 @ gUnknown_Debug_845E402 + sub r5, r5, r4 + add r1, r4, #0 + add r2, r5, #0 + bl memcpy + add r0, r6, #0 + add r1, r4, #0 + bl unref_sub_812620C + add r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 +._8: + .align 2, 0 +._7: + .word gUnknown_Debug_845E422 + .word gUnknown_Debug_845E402 + + thumb_func_end debug_sub_813C488 + + thumb_func_start debug_sub_813C4B4 +debug_sub_813C4B4: + push {r4, lr} + ldr r4, ._9 @ gUnknown_Debug_845E619 + ldr r1, ._9 + 4 @ gUnknown_Debug_845E606 + sub r4, r4, r1 + add r2, r4, #0 + bl memcpy + add r0, r4, #0 + pop {r4} + pop {r1} + bx r1 +._10: + .align 2, 0 +._9: + .word gUnknown_Debug_845E619 + .word gUnknown_Debug_845E606 + + thumb_func_end debug_sub_813C4B4 + + thumb_func_start debug_sub_813C4D4 +debug_sub_813C4D4: + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r5, ._11 @ gUnknown_Debug_845E712 + ldr r4, ._11 + 4 @ gUnknown_Debug_845E619 + sub r5, r5, r4 + add r1, r4, #0 + add r2, r5, #0 + bl memcpy + add r0, r6, #0 + add r1, r4, #0 + bl unref_sub_81261B4 + add r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 +._12: + .align 2, 0 +._11: + .word gUnknown_Debug_845E712 + .word gUnknown_Debug_845E619 + + thumb_func_end debug_sub_813C4D4 + + thumb_func_start debug_sub_813C500 +debug_sub_813C500: + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r5, ._13 @ gUnknown_Debug_845E797 + ldr r4, ._13 + 4 @ gUnknown_Debug_845E712 + sub r5, r5, r4 + add r1, r4, #0 + add r2, r5, #0 + bl memcpy + add r0, r6, #0 + add r1, r4, #0 + bl unref_sub_812620C + add r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 +._14: + .align 2, 0 +._13: + .word gUnknown_Debug_845E797 + .word gUnknown_Debug_845E712 + + thumb_func_end debug_sub_813C500 + + thumb_func_start debug_sub_813C52C +debug_sub_813C52C: + push {r4, r5, r6, lr} + mov r6, r9 + mov r5, r8 + push {r5, r6} + mov r8, r0 + lsl r5, r1, #0x10 + lsr r0, r5, #0x10 + mov r9, r0 + ldr r6, ._15 @ gUnknown_Debug_845E7BB + ldr r4, ._15 + 4 @ gUnknown_Debug_845E797 + sub r6, r6, r4 + mov r0, r8 + add r1, r4, #0 + add r2, r6, #0 + bl memcpy + ldr r0, ._15 + 8 @ gUnknown_Debug_845E7B5 + sub r0, r0, r4 + add r0, r0, r8 + add r0, r0, #0x3 + mov r1, r9 + strb r1, [r0] + lsr r5, r5, #0x18 + strb r5, [r0, #0x1] + mov r0, r8 + add r1, r4, #0 + bl unref_sub_812620C + add r0, r6, #0 + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6} + pop {r1} + bx r1 +._16: + .align 2, 0 +._15: + .word gUnknown_Debug_845E7BB + .word gUnknown_Debug_845E797 + .word gUnknown_Debug_845E7B5 + + thumb_func_end debug_sub_813C52C + + thumb_func_start debug_sub_813C580 +debug_sub_813C580: + push {lr} + mov r1, #0xd + bl debug_sub_813C52C + pop {r1} + bx r1 + + thumb_func_end debug_sub_813C580 + + thumb_func_start debug_sub_813C58C +debug_sub_813C58C: + push {lr} + mov r1, #0x4 + bl debug_sub_813C52C + pop {r1} + bx r1 + + thumb_func_end debug_sub_813C58C + + thumb_func_start debug_sub_813C598 +debug_sub_813C598: + push {lr} + mov r1, #0x85 + bl debug_sub_813C52C + pop {r1} + bx r1 + + thumb_func_end debug_sub_813C598 + + thumb_func_start debug_sub_813C5A4 +debug_sub_813C5A4: + push {lr} + ldr r1, ._17 @ 0x121 + bl debug_sub_813C52C + pop {r1} + bx r1 +._18: + .align 2, 0 +._17: + .word 0x121 + + thumb_func_end debug_sub_813C5A4 + + thumb_func_start debug_sub_813C5B4 +debug_sub_813C5B4: + push {r4, r5, r6, r7, lr} + add r4, r0, #0 + ldr r7, ._23 @ gSaveBlock1 + ldr r0, ._23 + 4 @ gUnknown_Debug_845DDD6 + ldr r1, ._23 + 8 @ gUnknown_Debug_845DDB2 + sub r0, r0, r1 + add r6, r0, r4 + ldr r0, ._23 + 12 @ gUnknown_Debug_845E306 + sub r5, r0, r1 + ldr r0, ._23 + 16 @ Str_842E23C + mov r1, #0x0 + mov r2, #0x0 + bl debug_sub_80C2C18 + mov r2, #0x0 + ldr r3, ._23 + 20 @ 0xfff + mov r1, #0x0 +._19: + add r0, r4, r2 + strb r1, [r0] + add r2, r2, #0x1 + cmp r2, r3 + ble ._19 @cond_branch + mov r2, #0x0 + cmp r2, r5 + bcs ._20 @cond_branch + ldr r3, ._23 + 8 @ gUnknown_Debug_845DDB2 +._21: + add r0, r4, r2 + add r1, r2, r3 + ldrb r1, [r1] + strb r1, [r0] + add r2, r2, #0x1 + cmp r2, r5 + bcc ._21 @cond_branch +._20: + mov r2, #0x0 + ldr r3, ._23 + 24 @ 0x52f +._22: + add r0, r6, r2 + add r1, r7, r2 + ldrb r1, [r1] + strb r1, [r0] + add r2, r2, #0x1 + cmp r2, r3 + bls ._22 @cond_branch + bl ClearEnigmaBerries + ldr r1, ._23 + 8 @ gUnknown_Debug_845DDB2 + add r0, r4, #0 + bl unref_sub_81261B4 + add r0, r5, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._24: + .align 2, 0 +._23: + .word gSaveBlock1+0x3160 + .word gUnknown_Debug_845DDD6 + .word gUnknown_Debug_845DDB2 + .word gUnknown_Debug_845E306 + .word Str_842E23C + .word 0xfff + .word 0x52f + + thumb_func_end debug_sub_813C5B4 + + thumb_func_start debug_sub_813C638 +debug_sub_813C638: + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + add sp, sp, #0xffffffec + mov r8, r0 + add r4, r1, #0 + add r5, r2, #0 + add r6, r3, #0 + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + lsl r6, r6, #0x10 + lsr r6, r6, #0x10 + bl ZeroMonData + mov r0, #0x0 + str r0, [sp] + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + ldr r0, ._25 @ 0x270f + str r0, [sp, #0xc] + mov r0, r8 + add r1, r4, #0 + add r2, r5, #0 + mov r3, #0x20 + bl CreateMon + ldr r2, ._25 + 4 @ Str_842E240 + mov r0, r8 + mov r1, #0x7 + bl SetMonData + ldr r2, ._25 + 8 @ Str_842E248 + mov r0, r8 + mov r1, #0x2 + bl SetMonData + str r6, [sp, #0x10] + mov r0, r8 + mov r1, #0xc + add r2, sp, #0x10 + bl SetMonData + add sp, sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 +._26: + .align 2, 0 +._25: + .word 0x270f + .word Str_842E240 + .word Str_842E248 + + thumb_func_end debug_sub_813C638 + + thumb_func_start debug_sub_813C6AC +debug_sub_813C6AC: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + add sp, sp, #0xfffffff8 + add r6, r0, #0 + add r5, r1, #0 + add r0, r5, #0 + bl ClearMailStruct + add r0, r6, #0 + mov r1, #0xc + bl GetMonData + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r8, r0 + bl ItemIsMail + lsl r0, r0, #0x18 + cmp r0, #0 + beq ._27 @cond_branch + add r4, r5, #0 + add r4, r4, #0x12 + add r7, r5, #0 + add r7, r7, #0x1a + mov r1, #0x9 + add r0, r5, #0 + add r0, r0, #0x10 +._28: + strh r1, [r0] + sub r1, r1, #0x1 + sub r0, r0, #0x2 + cmp r0, r5 + bge ._28 @cond_branch + add r0, r6, #0 + mov r1, #0x7 + mov r2, sp + bl GetMonData + add r0, r4, #0 + mov r1, sp + mov r2, #0x8 + bl StringCopyN + add r0, r6, #0 + mov r1, #0x1 + bl GetMonData + add r1, r7, #0 + bl write_word_to_mem + add r0, r6, #0 + mov r1, #0xb + bl GetMonData + add r4, r0, #0 + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + add r0, r6, #0 + mov r1, #0x0 + bl GetMonData + add r1, r0, #0 + add r0, r4, #0 + bl SpeciesToMailSpecies + strh r0, [r5, #0x1e] + mov r0, r8 + strh r0, [r5, #0x20] +._27: + add sp, sp, #0x8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_end debug_sub_813C6AC + + thumb_func_start debug_sub_813C740 +debug_sub_813C740: + push {r4, r5, r6, lr} + mov r6, sl + mov r5, r9 + mov r4, r8 + push {r4, r5, r6} + add sp, sp, #0xffffffd0 + add r6, r0, #0 + ldr r0, ._29 @ gUnknown_Debug_845E443 + mov r8, r0 + ldr r1, ._29 + 4 @ gUnknown_Debug_845E4EF + ldr r5, ._29 + 8 @ gEnemyParty + sub r1, r1, r0 + mov r9, r1 + add r0, r6, #0 + mov r1, r8 + mov r2, r9 + bl memcpy + add r0, r5, #0 + mov r1, #0x19 + mov r2, #0x5 + mov r3, #0x0 + bl debug_sub_813C638 + add r4, sp, #0x24 + mov r0, #0x1 + mov sl, r0 + mov r1, sl + strb r1, [r4] + add r0, r5, #0 + mov r1, #0x2d + add r2, r4, #0 + bl SetMonData + mov r0, #0x3 + strb r0, [r4] + add r0, r5, #0 + mov r1, #0x20 + add r2, r4, #0 + bl SetMonData + mov r0, #0xff + strb r0, [r4] + add r0, r5, #0 + mov r1, #0x23 + add r2, r4, #0 + bl SetMonData + ldr r1, ._29 + 12 @ Str_842E238 + add r0, r4, #0 + mov r2, #0xb + bl StringCopyN + add r0, r5, #0 + mov r1, #0x2 + add r2, r4, #0 + bl SetMonData + mov r0, sl + strb r0, [r4] + add r0, r5, #0 + mov r1, #0x3 + add r2, r4, #0 + bl SetMonData + ldr r0, ._29 + 16 @ gUnknown_Debug_845E467 + add r0, r6, r0 + mov r1, r8 + sub r0, r0, r1 + add r1, r5, #0 + mov r2, #0x64 + bl memcpy + ldr r0, ._29 + 20 @ gUnknown_Debug_845E4CB + add r6, r6, r0 + mov r0, r8 + sub r6, r6, r0 + add r0, r6, #0 + mov r1, sp + mov r2, #0x24 + bl memcpy + mov r0, r9 + add sp, sp, #0x30 + pop {r3, r4, r5} + mov r8, r3 + mov r9, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r1} + bx r1 +._30: + .align 2, 0 +._29: + .word gUnknown_Debug_845E443 + .word gUnknown_Debug_845E4EF + .word gEnemyParty + .word Str_842E238 + .word gUnknown_Debug_845E467 + .word gUnknown_Debug_845E4CB + + thumb_func_end debug_sub_813C740 + + thumb_func_start debug_sub_813C810 +debug_sub_813C810: + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + add sp, sp, #0xffffffdc + add r6, r0, #0 + ldr r5, ._31 @ gUnknown_Debug_845E443 + ldr r0, ._31 + 4 @ gUnknown_Debug_845E4EF + ldr r4, ._31 + 8 @ gEnemyParty + sub r0, r0, r5 + mov r8, r0 + add r0, r6, #0 + add r1, r5, #0 + mov r2, r8 + bl memcpy + add r0, r4, #0 + mov r1, #0xc9 + mov r2, #0x15 + mov r3, #0x82 + bl debug_sub_813C638 + add r0, r4, #0 + mov r1, sp + bl debug_sub_813C6AC + ldr r0, ._31 + 12 @ gUnknown_Debug_845E467 + add r0, r6, r0 + sub r0, r0, r5 + add r1, r4, #0 + mov r2, #0x64 + bl memcpy + ldr r0, ._31 + 16 @ gUnknown_Debug_845E4CB + add r0, r6, r0 + sub r0, r0, r5 + mov r1, sp + mov r2, #0x24 + bl memcpy + add r0, r6, #0 + add r1, r5, #0 + bl unref_sub_812620C + mov r0, r8 + add sp, sp, #0x24 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 +._32: + .align 2, 0 +._31: + .word gUnknown_Debug_845E443 + .word gUnknown_Debug_845E4EF + .word gEnemyParty + .word gUnknown_Debug_845E467 + .word gUnknown_Debug_845E4CB + + thumb_func_end debug_sub_813C810 + + thumb_func_start debug_sub_813C888 +debug_sub_813C888: + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + add sp, sp, #0xffffffdc + add r6, r0, #0 + ldr r5, ._33 @ gUnknown_Debug_845E443 + ldr r0, ._33 + 4 @ gUnknown_Debug_845E4EF + ldr r4, ._33 + 8 @ gEnemyParty + sub r0, r0, r5 + mov r8, r0 + add r0, r6, #0 + add r1, r5, #0 + mov r2, r8 + bl memcpy + add r0, r4, #0 + mov r1, #0xc9 + mov r2, #0x15 + mov r3, #0x82 + bl debug_sub_813C638 + add r0, r4, #0 + mov r1, sp + bl debug_sub_813C6AC + mov r0, #0x0 + strh r0, [r4, #0x1c] + ldr r0, ._33 + 12 @ gUnknown_Debug_845E467 + add r0, r6, r0 + sub r0, r0, r5 + add r1, r4, #0 + mov r2, #0x64 + bl memcpy + ldr r0, ._33 + 16 @ gUnknown_Debug_845E4CB + add r0, r6, r0 + sub r0, r0, r5 + mov r1, sp + mov r2, #0x24 + bl memcpy + add r0, r6, #0 + add r1, r5, #0 + bl unref_sub_812620C + mov r0, r8 + add sp, sp, #0x24 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 +._34: + .align 2, 0 +._33: + .word gUnknown_Debug_845E443 + .word gUnknown_Debug_845E4EF + .word gEnemyParty + .word gUnknown_Debug_845E467 + .word gUnknown_Debug_845E4CB + + thumb_func_end debug_sub_813C888 + + thumb_func_start debug_sub_813C904 +debug_sub_813C904: + push {r4, lr} + ldr r4, ._35 @ gPlayerParty + add r0, r4, #0 + mov r1, #0x5 + mov r2, #0x32 + mov r3, #0xb7 + bl debug_sub_813C638 + add r0, r4, #0 + add r0, r0, #0x64 + mov r1, #0x8 + mov r2, #0x32 + mov r3, #0xc4 + bl debug_sub_813C638 + add r4, r4, #0xc8 + add r0, r4, #0 + mov r1, #0x2 + mov r2, #0x32 + mov r3, #0x8d + bl debug_sub_813C638 + pop {r4} + pop {r0} + bx r0 +._36: + .align 2, 0 +._35: + .word gPlayerParty + + thumb_func_end debug_sub_813C904 + + thumb_func_start debug_sub_813C93C +debug_sub_813C93C: + push {r4, r5, r6, lr} + add sp, sp, #0xffffff44 + add r4, r0, #0 + ldr r6, ._37 @ gUnknown_Debug_845E4EF + ldr r5, ._37 + 4 @ gUnknown_Debug_845E606 + sub r5, r5, r6 + add r1, r6, #0 + add r2, r5, #0 + bl memcpy + bl SavePlayerParty + bl debug_sub_813C904 + ldr r1, ._37 + 8 @ Str_842E253 + ldr r2, ._37 + 12 @ 0x270f + mov r0, sp + bl debug_sub_8075DB4 + bl LoadPlayerParty + ldr r0, ._37 + 16 @ gUnknown_Debug_845E506 + add r4, r4, r0 + sub r4, r4, r6 + add r0, r4, #0 + mov r1, sp + mov r2, #0xbc + bl memcpy + add r0, r5, #0 + add sp, sp, #0xbc + pop {r4, r5, r6} + pop {r1} + bx r1 +._38: + .align 2, 0 +._37: + .word gUnknown_Debug_845E4EF + .word gUnknown_Debug_845E606 + .word Str_842E253+5 @ weird... + .word 0x270f + .word gUnknown_Debug_845E506 + + thumb_func_end debug_sub_813C93C + + .align 2, 0 + +.endif diff --git a/asm/unk_text_8095904.s b/asm/unk_text_8095904.s deleted file mode 100644 index 00c81faca..000000000 --- a/asm/unk_text_8095904.s +++ /dev/null @@ -1,256 +0,0 @@ - .include "constants/gba_constants.inc" - .include "include/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8095904 -sub_8095904: @ 8095904 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - str r0, [sp] - adds r7, r1, 0 - adds r4, r2, 0 - ldr r0, [sp, 0x3C] - lsls r4, 24 - lsrs r4, 24 - lsls r3, 16 - lsrs r3, 16 - str r3, [sp, 0x4] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - ldr r0, [sp] - bl StringLength - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r4, 0 - bne _08095988 - movs r5, 0 - cmp r5, r8 - bcs _08095A2E -_0809593E: - ldr r1, [sp] - adds r0, r1, r5 - ldrb r2, [r0] - ldr r0, _08095980 @ =0x0000fff0 - ands r0, r2 - lsls r0, 6 - movs r1, 0xF - ands r2, r1 - lsls r2, 5 - adds r0, r2 - ldr r1, _08095984 @ =gFont3LatinGlyphs - adds r4, r0, r1 - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0x10 - bl CpuSet - movs r2, 0x80 - lsls r2, 2 - adds r0, r4, r2 - ldr r3, [sp, 0x4] - adds r1, r7, r3 - movs r2, 0x10 - bl CpuSet - adds r7, 0x20 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _0809593E - b _08095A2E - .align 2, 0 -_08095980: .4byte 0x0000fff0 -_08095984: .4byte gFont3LatinGlyphs -_08095988: - movs r0, 0 - mov r9, r0 - ldr r1, [sp, 0x8] - lsls r0, r1, 28 - lsrs r0, 24 - str r0, [sp, 0xC] - mov r2, r8 - lsls r0, r2, 21 - movs r1, 0 - lsrs r0, 1 - str r0, [sp, 0x10] -_0809599E: - movs r5, 0 - ldr r3, [sp, 0x4] - adds r3, r7, r3 - str r3, [sp, 0x14] - adds r0, r1, 0x1 - str r0, [sp, 0x18] - cmp r5, r8 - bcs _08095A12 - movs r2, 0xF - mov r12, r2 - lsls r1, 9 - ldr r0, _08095A40 @ =gFont3LatinGlyphs - adds r1, r0 - mov r10, r1 -_080959BA: - ldr r3, [sp] - adds r0, r3, r5 - ldrb r1, [r0] - ldr r0, _08095A44 @ =0x0000fff0 - ands r0, r1 - lsls r0, 6 - mov r2, r12 - ands r1, r2 - lsls r1, 5 - adds r0, r1 - mov r3, r10 - adds r4, r0, r3 - movs r6, 0 - adds r5, 0x1 -_080959D6: - ldrb r0, [r4] - movs r3, 0xF0 - ands r3, r0 - mov r2, r12 - ands r2, r0 - cmp r3, 0 - bne _080959E6 - ldr r3, [sp, 0xC] -_080959E6: - cmp r2, 0 - bne _080959EC - ldr r2, [sp, 0x8] -_080959EC: - mov r0, r9 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - ldr r1, [sp, 0x40] - adds r0, r1, r0 - orrs r3, r2 - strb r3, [r0] - adds r4, 0x1 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x1F - bls _080959D6 - lsls r0, r5, 16 - lsrs r5, r0, 16 - cmp r5, r8 - bcc _080959BA -_08095A12: - ldr r0, [sp, 0x40] - adds r1, r7, 0 - ldr r3, [sp, 0x10] - lsrs r2, r3, 16 - bl CpuSet - ldr r7, [sp, 0x14] - movs r0, 0 - mov r9, r0 - ldr r1, [sp, 0x18] - lsls r0, r1, 16 - lsrs r1, r0, 16 - cmp r1, 0x1 - bls _0809599E -_08095A2E: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08095A40: .4byte gFont3LatinGlyphs -_08095A44: .4byte 0x0000fff0 - thumb_func_end sub_8095904 - - thumb_func_start unref_sub_8095A48 -unref_sub_8095A48: @ 8095A48 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r7, r3, 24 - movs r6, 0 -_08095A60: - movs r3, 0 - ldrb r0, [r4] - adds r1, r0, 0 - adds r2, r0, 0 - cmp r1, 0xFF - beq _08095ACE -_08095A6C: - mov r0, sp - adds r0, r3 - adds r0, 0x8 - strb r2, [r0] - adds r4, 0x1 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bhi _08095AA8 - ldrb r0, [r4] - adds r1, r0, 0 - adds r2, r0, 0 - cmp r1, 0xFF - bne _08095A6C - cmp r3, 0 - beq _08095ACE - movs r6, 0x1 - cmp r3, 0x3 - bhi _08095AA8 - movs r2, 0 -_08095A96: - adds r0, r3, 0 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r3, r1, 16 - add r0, sp - adds r0, 0x8 - strb r2, [r0] - cmp r3, 0x3 - bls _08095A96 -_08095AA8: - mov r1, sp - adds r1, r3 - adds r1, 0x8 - movs r0, 0xFF - strb r0, [r1] - str r7, [sp] - ldr r0, [sp, 0x28] - str r0, [sp, 0x4] - add r0, sp, 0x8 - adds r1, r5, 0 - mov r2, r8 - movs r3, 0x80 - bl sub_8095904 - movs r0, 0x80 - lsls r0, 1 - adds r5, r0 - cmp r6, 0 - beq _08095A60 -_08095ACE: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end unref_sub_8095A48 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s new file mode 100644 index 000000000..892c2262d --- /dev/null +++ b/asm/watanabe_debug_menu.s @@ -0,0 +1,9578 @@ +.if DEBUG + + .include "constants/gba_constants.inc" + .include "include/macros.inc" + + .text + + thumb_func_start debug_69 +debug_69: + bx lr + + thumb_func_end debug_69 + + thumb_func_start debug_80C35DC +debug_80C35DC: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + add sp, sp, #0xfffffff8 + mov r0, #0x0 + bl SetVBlankCallback + mov r0, #0x80 + lsl r0, r0, #0x13 + mov r1, #0x0 + strh r1, [r0] + add r0, r0, #0xe + strh r1, [r0] + sub r0, r0, #0x2 + strh r1, [r0] + sub r0, r0, #0x2 + strh r1, [r0] + sub r0, r0, #0x2 + strh r1, [r0] + add r0, r0, #0x14 + strh r1, [r0] + add r0, r0, #0x2 + strh r1, [r0] + sub r0, r0, #0x6 + strh r1, [r0] + add r0, r0, #0x2 + strh r1, [r0] + sub r0, r0, #0x6 + strh r1, [r0] + add r0, r0, #0x2 + strh r1, [r0] + sub r0, r0, #0x6 + strh r1, [r0] + add r0, r0, #0x2 + strh r1, [r0] + mov r3, #0xc0 + lsl r3, r3, #0x13 + mov r4, #0xc0 + lsl r4, r4, #0x9 + add r0, sp, #0x4 + mov r8, r0 + mov r2, sp + mov r6, #0x0 + ldr r1, ._2 @ 0x40000d4 + mov r5, #0x80 + lsl r5, r5, #0x5 + ldr r7, ._2 + 4 @ 0x81000800 + mov r0, #0x81 + lsl r0, r0, #0x18 + mov ip, r0 +._1: + strh r6, [r2] + mov r0, sp + str r0, [r1] + str r3, [r1, #0x4] + str r7, [r1, #0x8] + ldr r0, [r1, #0x8] + add r3, r3, r5 + sub r4, r4, r5 + cmp r4, r5 + bhi ._1 @cond_branch + strh r6, [r2] + mov r2, sp + str r2, [r1] + str r3, [r1, #0x4] + lsr r0, r4, #0x1 + mov r2, ip + orr r0, r0, r2 + str r0, [r1, #0x8] + ldr r0, [r1, #0x8] + mov r0, #0xe0 + lsl r0, r0, #0x13 + mov r3, #0x80 + lsl r3, r3, #0x3 + mov r4, #0x0 + str r4, [sp, #0x4] + ldr r2, ._2 @ 0x40000d4 + mov r1, r8 + str r1, [r2] + str r0, [r2, #0x4] + lsr r0, r3, #0x2 + mov r1, #0x85 + lsl r1, r1, #0x18 + orr r0, r0, r1 + str r0, [r2, #0x8] + ldr r0, [r2, #0x8] + mov r1, #0xa0 + lsl r1, r1, #0x13 + mov r0, sp + strh r4, [r0] + str r0, [r2] + str r1, [r2, #0x4] + lsr r3, r3, #0x1 + mov r0, #0x81 + lsl r0, r0, #0x18 + orr r3, r3, r0 + str r3, [r2, #0x8] + ldr r0, [r2, #0x8] + bl ResetPaletteFade + bl ScanlineEffect_Stop + bl ResetTasks + bl ResetSpriteData + bl ResetPaletteFade + bl FreeAllSpritePalettes + ldr r0, ._2 + 8 @ stru_83F8828 + bl LoadSpriteSheet + ldr r0, ._2 + 12 @ stru_83F8838 + bl LoadSpritePalette + ldr r0, ._2 + 16 @ gWindowTemplate_81E6C3C + bl Text_LoadWindowTemplate + ldr r0, ._2 + 20 @ gWindowTemplate_81E6CE4 + bl InitMenuWindow + add sp, sp, #0x8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._3: + .align 2, 0 +._2: + .word 0x40000d4 + .word 0x81000800 + .word stru_83F8828 + .word stru_83F8838 + .word gWindowTemplate_81E6C3C + .word gWindowTemplate_81E6CE4 + + thumb_func_end debug_80C35DC + + thumb_func_start debug_80C36F4 +debug_80C36F4: + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + + thumb_func_end debug_80C36F4 + + thumb_func_start debug_80C370C +debug_80C370C: + push {lr} + ldr r0, ._6 @ gPaletteFade + ldrb r1, [r0, #0x7] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + bne ._4 @cond_branch + ldr r0, ._6 + 4 @ debug_80C36F4 + bl SetMainCallback2 + b ._5 +._7: + .align 2, 0 +._6: + .word gPaletteFade + .word debug_80C36F4+1 +._4: + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade +._5: + pop {r0} + bx r0 + + thumb_func_end debug_80C370C + + thumb_func_start debug_80C373C +debug_80C373C: + push {lr} + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl DestroyTask + bl ScriptContext2_Disable + ldr r0, ._8 @ sub_80546F0 + bl SetMainCallback2 + pop {r0} + bx r0 +._9: + .align 2, 0 +._8: + .word sub_80546F0+1 + + thumb_func_end debug_80C373C + + thumb_func_start debug_80C3758 +debug_80C3758: + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + + thumb_func_end debug_80C3758 + + thumb_func_start debug_80C376C +debug_80C376C: + push {r4, r5, r6, r7, lr} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + lsl r1, r1, #0x18 + lsr r7, r1, #0x18 + lsl r2, r2, #0x18 + lsr r6, r2, #0x18 + mov r1, #0x0 + mov r2, #0x0 +._10: + mov r3, sp + add r0, r3, r1 + strb r2, [r0] + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + cmp r1, #0x2 + bls ._10 @cond_branch + mov r1, sp + mov r0, #0xff + strb r0, [r1, #0x3] + mov r4, #0x0 + add r0, r5, #0 + mov r1, #0x64 + bl __udivsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0 + beq ._11 @cond_branch + mov r1, sp + add r0, r0, #0xa1 + strb r0, [r1] + mov r4, #0x1 +._11: + add r0, r5, #0 + mov r1, #0x64 + bl __umodsi3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0xa + bl __udivsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0 + bne ._12 @cond_branch + cmp r4, #0 + beq ._13 @cond_branch +._12: + mov r1, sp + add r0, r0, #0xa1 + strb r0, [r1, #0x1] +._13: + mov r4, sp + add r0, r5, #0 + mov r1, #0x64 + bl __umodsi3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0xa + bl __umodsi3 + add r0, r0, #0xa1 + strb r0, [r4, #0x2] + mov r0, sp + add r1, r7, #0 + add r2, r6, #0 + bl Menu_PrintText + add sp, sp, #0x4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_end debug_80C376C + + thumb_func_start debug_80C3800 +debug_80C3800: + push {r4, r5, r6, r7, lr} + add sp, sp, #0xfffffff4 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + lsl r1, r1, #0x18 + lsr r6, r1, #0x18 + lsl r2, r2, #0x18 + lsr r5, r2, #0x18 + mov r3, #0x0 + ldr r2, ._18 @ gSpeciesNames + mov r1, #0x0 +._14: + mov r7, sp + add r0, r7, r3 + strb r1, [r0] + add r0, r3, #1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + cmp r3, #0x9 + bls ._14 @cond_branch + add r1, r7, r3 + mov r0, #0xff + strb r0, [r1] + mov r3, #0x0 + mov r0, #0xb + add r1, r4, #0 + mul r1, r1, r0 + add r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0xff + beq ._16 @cond_branch + add r4, r2, #0 + add r2, r1, #0 +._17: + mov r0, sp + add r1, r0, r3 + add r0, r3, r2 + add r0, r0, r4 + ldrb r0, [r0] + strb r0, [r1] + add r0, r3, #1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + add r0, r3, r2 + add r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0xff + beq ._16 @cond_branch + cmp r3, #0x9 + bls ._17 @cond_branch +._16: + mov r0, sp + add r1, r6, #0 + add r2, r5, #0 + bl Menu_PrintText + add sp, sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._19: + .align 2, 0 +._18: + .word gSpeciesNames + + thumb_func_end debug_80C3800 + + thumb_func_start debug_80C3878 +debug_80C3878: + push {lr} + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + cmp r0, #0 + beq ._20 @cond_branch + cmp r0, #0x1 + beq ._21 @cond_branch +._20: + cmp r1, #0x1 + bls ._22 @cond_branch + sub r0, r1, #1 + b ._23 +._22: + ldr r1, ._25 @ 0x19b + b ._28 +._26: + .align 2, 0 +._25: + .word 0x19b +._21: + mov r0, #0xcd + lsl r0, r0, #0x1 + cmp r1, r0 + bhi ._27 @cond_branch + add r0, r1, #1 +._23: + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + b ._28 +._27: + mov r1, #0x1 +._28: + add r0, r1, #0 + pop {r1} + bx r1 + + thumb_func_end debug_80C3878 + + thumb_func_start debug_80C38B4 +debug_80C38B4: + push {lr} + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + lsl r1, r1, #0x10 + lsr r0, r1, #0x10 + cmp r2, #0 + beq ._29 @cond_branch + cmp r2, #0x1 + beq ._30 @cond_branch +._29: + cmp r0, #0 + beq ._31 @cond_branch + sub r0, r0, #0x1 + b ._32 +._31: + mov r0, #0x52 + b ._35 +._30: + cmp r0, #0x51 + bhi ._34 @cond_branch + add r0, r0, #0x1 +._32: + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + b ._35 +._34: + mov r0, #0x0 +._35: + pop {r1} + bx r1 + + thumb_func_end debug_80C38B4 + + thumb_func_start debug_80C38E4 +debug_80C38E4: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + add sp, sp, #0xfffffffc + add r4, r2, #0 + add r5, r3, #0 + ldr r6, [sp, #0x1c] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r8, r0 + lsl r1, r1, #0x18 + lsr r7, r1, #0x18 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + lsl r6, r6, #0x18 + lsr r6, r6, #0x18 + ldr r1, ._37 @ gUnknown_Debug_083F7FD4 + mov r0, sp + mov r2, #0x2 + bl memcpy + add r0, r7, #0 + add r1, r4, #0 + add r2, r7, #0 + add r3, r5, #0 + bl Menu_BlankWindowRect + cmp r6, #0 + beq ._36 @cond_branch + mov r0, sp + add r1, r7, #0 + mov r2, r8 + bl Menu_PrintText +._36: + add sp, sp, #0x4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._38: + .align 2, 0 +._37: + .word gUnknown_Debug_083F7FD4 + + thumb_func_end debug_80C38E4 + + thumb_func_start debug_80C393C +debug_80C393C: + push {lr} + ldr r1, ._39 @ gUnknown_Debug_083F7FD6 + mov r0, #0x1e + bl ProgramFlashSectorAndVerify + pop {r0} + bx r0 +._40: + .align 2, 0 +._39: + .word gUnknown_Debug_083F7FD6 + + thumb_func_end debug_80C393C + + thumb_func_start InitWatanabeDebugMenu +InitWatanabeDebugMenu: + push {r4, lr} + ldr r0, ._46 @ gMain + ldr r1, ._46 + 4 @ 0x43c + add r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0x1 + beq ._41 @cond_branch + cmp r0, #0x1 + ble ._42 @cond_branch + cmp r0, #0x2 + beq ._43 @cond_branch + cmp r0, #0x3 + beq ._44 @cond_branch +._42: + bl save_serialize_map + bl sub_8125E2C + mov r0, #0x1 + strb r0, [r4] + b ._51 +._47: + .align 2, 0 +._46: + .word gMain + .word 0x43c +._41: + bl sub_8125E6C + lsl r0, r0, #0x18 + cmp r0, #0 + beq ._51 @cond_branch + b ._49 +._43: + mov r0, #0x37 + bl PlaySE +._49: + ldrb r0, [r4] + add r0, r0, #0x1 + strb r0, [r4] + b ._51 +._44: + bl IsSEPlaying + lsl r0, r0, #0x18 + cmp r0, #0 + bne ._51 @cond_branch + bl ScriptContext2_Disable + ldr r0, ._52 @ sub_80546F0 + bl SetMainCallback2 +._51: + pop {r4} + pop {r0} + bx r0 +._53: + .align 2, 0 +._52: + .word sub_80546F0+1 + + thumb_func_end InitWatanabeDebugMenu + + thumb_func_start InitSizeComparison +InitSizeComparison: + push {r4, lr} + add sp, sp, #0xfffffffc + bl debug_80C35DC + ldr r1, ._54 @ gReservedSpritePaletteCount + mov r0, #0x1 + strb r0, [r1] + ldr r0, ._54 + 4 @ gUnknown_Debug_20389EC + mov r1, #0x80 + lsl r1, r1, #0x1 + mov r2, #0x20 + bl LoadPalette + ldr r3, ._54 + 8 @ 0x4000208 + ldrh r2, [r3] + mov r0, #0x0 + strh r0, [r3] + ldr r4, ._54 + 12 @ 0x4000200 + ldrh r0, [r4] + mov r1, #0x1 + orr r0, r0, r1 + strh r0, [r4] + strh r2, [r3] + mov r0, #0x1 + neg r0, r0 + mov r1, #0x0 + str r1, [sp] + mov r2, #0x10 + mov r3, #0x0 + bl BeginNormalPaletteFade + ldr r0, ._54 + 16 @ debug_80C3758 + bl SetVBlankCallback + ldr r0, ._54 + 20 @ debug_80C370C + bl SetMainCallback2 + mov r1, #0x80 + lsl r1, r1, #0x13 + mov r2, #0x8a + lsl r2, r2, #0x5 + add r0, r2, #0 + strh r0, [r1] + ldr r0, ._54 + 24 @ debug_80C3A50 + mov r1, #0x0 + bl CreateTask + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r2, ._54 + 28 @ gTasks + lsl r1, r0, #0x2 + add r1, r1, r0 + lsl r1, r1, #0x3 + add r1, r1, r2 + mov r0, #0xfc + strh r0, [r1, #0x8] + add sp, sp, #0x4 + pop {r4} + pop {r0} + bx r0 +._55: + .align 2, 0 +._54: + .word gReservedSpritePaletteCount + .word gUnknown_Debug_20389EC + .word 0x4000208 + .word 0x4000200 + .word debug_80C3758+1 + .word debug_80C370C+1 + .word debug_80C3A50+1 + .word gTasks + + thumb_func_end InitSizeComparison + + thumb_func_start debug_80C3A50 +debug_80C3A50: + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, r9 + mov r5, r8 + push {r5, r6, r7} + add sp, sp, #0xffffffd8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r1, ._56 @ gTasks + lsl r2, r0, #0x2 + add r0, r2, r0 + lsl r0, r0, #0x3 + add r7, r0, r1 + ldrh r0, [r7, #0x8] + str r0, [sp, #0x4] + bl NationalPokedexNumToSpecies + mov r1, sp + strh r0, [r1, #0x8] + add r2, r0, #0 + lsl r2, r2, #0x10 + str r2, [sp, #0xc] + lsr r2, r2, #0x10 + mov r9, r2 + ldr r3, ._56 + 4 @ gSaveBlock2 + mov r8, r3 + mov r0, #0x6 + mov r1, #0x0 + mov r2, #0x17 + mov r3, #0x9 + bl Menu_DrawStdWindowFrame + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x5 + mov r3, #0x9 + bl Menu_DrawStdWindowFrame + ldr r5, ._56 + 8 @ gUnknown_Debug_083F7FD6 + add r0, r5, #0 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + ldr r4, ._56 + 12 @ gUnknown_Debug_083F7FDE + add r0, r4, #0 + mov r1, #0x1 + mov r2, #0x5 + bl Menu_PrintText + mov r0, #0x18 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x9 + bl Menu_DrawStdWindowFrame + add r0, r5, #0 + mov r1, #0x19 + mov r2, #0x1 + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0x19 + mov r2, #0x5 + bl Menu_PrintText + mov r0, #0x0 + mov r1, #0xa + mov r2, #0xb + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r0, ._56 + 16 @ gUnknown_Debug_083F7FE2 + mov r1, #0x1 + mov r2, #0xb + bl Menu_PrintText + ldr r0, ._56 + 20 @ gUnknown_Debug_083F7FED + mov r1, #0x1 + mov r2, #0xd + bl Menu_PrintText + ldr r0, ._56 + 24 @ gUnknown_Debug_083F7FF6 + mov r1, #0x1 + mov r2, #0xf + bl Menu_PrintText + ldr r0, ._56 + 28 @ gUnknown_Debug_083F8001 + mov r1, #0x1 + mov r2, #0x11 + bl Menu_PrintText + mov r0, #0xc + mov r1, #0xa + mov r2, #0x1d + mov r3, #0xf + bl Menu_DrawStdWindowFrame + ldr r0, ._56 + 32 @ gUnknown_Debug_083F800C + mov r1, #0xd + mov r2, #0xb + bl Menu_PrintText + ldr r0, ._56 + 36 @ gUnknown_Debug_083F8019 + mov r1, #0xd + mov r2, #0xd + bl Menu_PrintText + mov r0, #0xc + mov r1, #0x10 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r0, ._56 + 40 @ gUnknown_Debug_083F8022 + mov r1, #0xd + mov r2, #0x11 + bl Menu_PrintText + ldr r0, ._56 + 44 @ gUnknown_Debug_083F8028 + mov r1, #0x18 + mov r2, #0x11 + bl Menu_PrintText + mov r0, r9 + mov r1, #0x12 + mov r2, #0x11 + bl debug_80C3800 + mov r1, r8 + ldrb r0, [r1, #0x8] + mov r1, #0x98 + mov r2, #0x28 + mov r3, #0x0 + bl sub_8091A4C + mov r2, sp + strh r0, [r2, #0x10] + add r3, r0, #0 + lsl r3, r3, #0x10 + str r3, [sp, #0x18] + lsr r0, r3, #0x10 + str r0, [sp, #0x14] + lsl r4, r0, #0x4 + add r4, r4, r0 + lsl r4, r4, #0x2 + ldr r1, ._56 + 48 @ gSprites + add r4, r4, r1 + ldrb r1, [r4, #0x1] + mov r2, #0x4 + neg r2, r2 + mov sl, r2 + mov r0, sl + and r0, r0, r1 + mov r3, #0x1 + orr r0, r0, r3 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x3] + mov r0, #0x3f + neg r0, r0 + mov r9, r0 + and r0, r0, r1 + mov r1, #0x4 + orr r0, r0, r1 + strb r0, [r4, #0x3] + ldrb r1, [r4, #0x5] + sub r2, r2, #0x9 + mov r8, r2 + mov r0, r8 + and r0, r0, r1 + mov r3, #0xf + and r0, r0, r3 + strb r0, [r4, #0x5] + mov r0, #0x0 + bl GetSpritePaletteTagByPaletteNum + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FreeSpritePaletteByTag + ldr r0, ._56 + 52 @ gPokedexEntries + ldr r1, [sp, #0x4] + lsl r5, r1, #0x3 + add r5, r5, r1 + lsl r5, r5, #0x2 + add r5, r5, r0 + ldrh r6, [r5, #0x20] + strh r6, [r4, #0x26] + ldrh r4, [r5, #0x1e] + str r4, [sp] + mov r0, #0x2 + add r1, r4, #0 + mov r2, #0x0 + mov r3, #0x0 + bl SetOamMatrix + mov r2, sp + ldrh r2, [r2, #0x14] + strh r2, [r7, #0xe] + strh r6, [r7, #0x10] + strh r4, [r7, #0x14] + ldr r0, [sp, #0x4] + mov r1, #0x58 + mov r2, #0x28 + mov r3, #0x1 + bl sub_80918EC + mov r3, sp + strh r0, [r3, #0x1c] + lsl r0, r0, #0x10 + str r0, [sp, #0x24] + lsr r1, r0, #0x10 + str r1, [sp, #0x20] + lsl r4, r1, #0x4 + add r4, r4, r1 + lsl r4, r4, #0x2 + ldr r2, ._56 + 48 @ gSprites + add r4, r4, r2 + ldrb r0, [r4, #0x1] + mov r3, sl + and r3, r3, r0 + mov r0, #0x1 + orr r3, r3, r0 + strb r3, [r4, #0x1] + ldrb r0, [r4, #0x3] + mov r1, r9 + and r1, r1, r0 + mov r0, #0x2 + orr r1, r1, r0 + strb r1, [r4, #0x3] + ldrb r0, [r4, #0x5] + mov r2, r8 + and r2, r2, r0 + mov r3, #0xf + and r2, r2, r3 + strb r2, [r4, #0x5] + mov r0, #0x0 + bl GetSpritePaletteTagByPaletteNum + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FreeSpritePaletteByTag + ldrh r0, [r5, #0x1c] + mov r8, r0 + strh r0, [r4, #0x26] + ldrh r4, [r5, #0x1a] + str r4, [sp] + mov r0, #0x1 + add r1, r4, #0 + mov r2, #0x0 + mov r3, #0x0 + bl SetOamMatrix + mov r1, sp + ldrh r1, [r1, #0x20] + strh r1, [r7, #0xc] + mov r2, r8 + strh r2, [r7, #0x12] + strh r4, [r7, #0x16] + mov r3, #0x0 + strh r3, [r7, #0x18] + strh r3, [r7, #0x1a] + ldr r1, ._56 + 56 @ 0x4000048 + ldr r2, ._56 + 60 @ 0x3f1f + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x2 + mov r0, #0x1f + strh r0, [r1] + ldr r2, ._56 + 64 @ 0x4000040 + mov r3, #0x18 + ldsh r1, [r7, r3] + lsl r1, r1, #0x6 + add r0, r1, #0 + add r0, r0, #0x38 + lsl r0, r0, #0x8 + add r1, r1, #0x78 + add r0, r0, r1 + strh r0, [r2] + ldr r1, ._56 + 68 @ 0x4000044 + ldr r2, ._56 + 72 @ 0x848 + add r0, r2, #0 + strh r0, [r1] + sub r1, r1, #0x2 + ldr r3, ._56 + 76 @ 0x31bf + add r0, r3, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r2, ._56 + 80 @ 0x14f + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0xa + mov r0, #0xe1 + strh r0, [r1] + ldr r0, ._56 + 84 @ 0x4000052 + mov r3, #0x0 + strh r3, [r0] + add r1, r1, #0x4 + mov r0, #0x7 + strh r0, [r1] + mov r2, #0x80 + lsl r2, r2, #0x13 + ldrh r0, [r2] + mov r3, #0xc0 + lsl r3, r3, #0x7 + add r1, r3, #0 + orr r0, r0, r1 + strh r0, [r2] + ldr r0, ._56 + 88 @ debug_80C3D2C + str r0, [r7] + add sp, sp, #0x28 + pop {r3, r4, r5} + mov r8, r3 + mov r9, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._57: + .align 2, 0 +._56: + .word gTasks + .word gSaveBlock2 + .word gUnknown_Debug_083F7FD6+0x4 + .word gUnknown_Debug_083F7FDE + .word gUnknown_Debug_083F7FE2 + .word gUnknown_Debug_083F7FED + .word gUnknown_Debug_083F7FF6 + .word gUnknown_Debug_083F8001 + .word gUnknown_Debug_083F800C + .word gUnknown_Debug_083F8019 + .word gUnknown_Debug_083F8022 + .word gUnknown_Debug_083F8028 + .word gSprites + .word gPokedexEntries + .word 0x4000048 + .word 0x3f1f + .word 0x4000040 + .word 0x4000044 + .word 0x848 + .word 0x31bf + .word 0x14f + .word 0x4000052 + .word debug_80C3D2C+1 + + thumb_func_end debug_80C3A50 + + thumb_func_start debug_80C3D2C +debug_80C3D2C: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + add r7, r6, #0 + ldr r4, ._60 @ gMain + ldrh r1, [r4, #0x2e] + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._58 @cond_branch + mov r0, #0x5 + bl PlaySE + mov r0, #0x1 + neg r0, r0 + mov r1, #0x0 + str r1, [sp] + mov r2, #0x0 + mov r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, ._60 + 4 @ debug_80C370C + bl SetMainCallback2 + ldr r1, ._60 + 8 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._60 + 12 @ debug_80C373C + str r1, [r0] + b ._117 +._61: + .align 2, 0 +._60: + .word gMain + .word debug_80C370C+1 + .word gTasks + .word debug_80C373C+1 +._58: + mov r5, #0x1 + add r0, r5, #0 + and r0, r0, r1 + cmp r0, #0 + beq ._62 @cond_branch + mov r0, #0x5 + bl PlaySE + ldr r1, ._64 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldrh r1, [r0, #0x18] + mov r2, #0x1 + eor r1, r1, r2 + strh r1, [r0, #0x18] + b ._117 +._65: + .align 2, 0 +._64: + .word gTasks +._62: + ldrh r1, [r4, #0x30] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._66 @cond_branch + ldr r1, ._70 @ gTasks + lsl r2, r6, #0x2 + add r0, r2, r6 + lsl r0, r0, #0x3 + add r3, r0, r1 + mov r5, #0x18 + ldsh r0, [r3, r5] + mov r8, r1 + cmp r0, #0 + beq ._67 @cond_branch + ldrh r1, [r4, #0x2c] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._68 @cond_branch + ldrh r0, [r3, #0x14] + add r0, r0, #0x10 + b ._69 +._71: + .align 2, 0 +._70: + .word gTasks +._68: + ldrh r0, [r3, #0x14] + add r0, r0, #0x1 +._69: + strh r0, [r3, #0x14] + add r0, r2, r7 + lsl r0, r0, #0x3 + mov r2, r8 + add r1, r0, r2 + ldrh r0, [r1, #0x14] + mov r6, #0x80 + lsl r6, r6, #0x8 + cmp r0, r6 + bhi ._72 @cond_branch + b ._117 +._72: + strh r6, [r1, #0x14] + b ._117 +._67: + ldrh r1, [r4, #0x2c] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._75 @cond_branch + ldrh r0, [r3, #0x16] + add r0, r0, #0x10 + b ._76 +._75: + ldrh r0, [r3, #0x16] + add r0, r0, #0x1 +._76: + strh r0, [r3, #0x16] + add r0, r2, r7 + lsl r0, r0, #0x3 + mov r4, r8 + add r1, r0, r4 + ldrh r0, [r1, #0x16] + mov r6, #0x80 + lsl r6, r6, #0x8 + cmp r0, r6 + bhi ._77 @cond_branch + b ._117 +._77: + strh r6, [r1, #0x16] + b ._117 +._66: + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._80 @cond_branch + ldr r1, ._84 @ gTasks + lsl r2, r6, #0x2 + add r0, r2, r6 + lsl r0, r0, #0x3 + add r3, r0, r1 + mov r5, #0x18 + ldsh r0, [r3, r5] + mov r8, r1 + cmp r0, #0 + beq ._81 @cond_branch + ldrh r1, [r4, #0x2c] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._82 @cond_branch + ldrh r0, [r3, #0x14] + sub r0, r0, #0x10 + b ._83 +._85: + .align 2, 0 +._84: + .word gTasks +._82: + ldrh r0, [r3, #0x14] + sub r0, r0, #0x1 +._83: + strh r0, [r3, #0x14] + add r0, r2, r7 + lsl r0, r0, #0x3 + mov r2, r8 + add r1, r0, r2 + mov r4, #0x14 + ldsh r0, [r1, r4] + cmp r0, #0xff + ble ._86 @cond_branch + b ._117 +._86: + mov r0, #0x80 + lsl r0, r0, #0x1 + strh r0, [r1, #0x14] + b ._117 +._81: + ldrh r1, [r4, #0x2c] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._89 @cond_branch + ldrh r0, [r3, #0x16] + sub r0, r0, #0x10 + b ._90 +._89: + ldrh r0, [r3, #0x16] + sub r0, r0, #0x1 +._90: + strh r0, [r3, #0x16] + add r0, r2, r7 + lsl r0, r0, #0x3 + mov r5, r8 + add r1, r0, r5 + mov r2, #0x16 + ldsh r0, [r1, r2] + cmp r0, #0xff + ble ._91 @cond_branch + b ._117 +._91: + mov r0, #0x80 + lsl r0, r0, #0x1 + strh r0, [r1, #0x16] + b ._117 +._80: + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._94 @cond_branch + ldr r0, ._97 @ gTasks + lsl r1, r6, #0x2 + add r1, r1, r6 + lsl r1, r1, #0x3 + add r1, r1, r0 + mov r4, #0x18 + ldsh r0, [r1, r4] + cmp r0, #0 + beq ._95 @cond_branch + ldrh r0, [r1, #0x10] + sub r0, r0, #0x1 + strh r0, [r1, #0x10] + b ._117 +._98: + .align 2, 0 +._97: + .word gTasks +._95: + ldrh r0, [r1, #0x12] + sub r0, r0, #0x1 + strh r0, [r1, #0x12] + b ._117 +._94: + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._100 @cond_branch + ldr r0, ._103 @ gTasks + lsl r1, r6, #0x2 + add r1, r1, r6 + lsl r1, r1, #0x3 + add r1, r1, r0 + mov r5, #0x18 + ldsh r0, [r1, r5] + cmp r0, #0 + beq ._101 @cond_branch + ldrh r0, [r1, #0x10] + add r0, r0, #0x1 + strh r0, [r1, #0x10] + b ._117 +._104: + .align 2, 0 +._103: + .word gTasks +._101: + ldrh r0, [r1, #0x12] + add r0, r0, #0x1 + strh r0, [r1, #0x12] + b ._117 +._100: + mov r0, #0x8 + and r0, r0, r1 + cmp r0, #0 + beq ._106 @cond_branch + ldr r2, ._109 @ gTasks + lsl r3, r6, #0x2 + add r0, r3, r6 + lsl r0, r0, #0x3 + add r6, r0, r2 + ldrh r4, [r6, #0x8] + mov r0, #0x8 + ldsh r1, [r6, r0] + ldr r0, ._109 + 4 @ 0x181 + mov r8, r2 + add r2, r3, #0 + cmp r1, r0 + bgt ._107 @cond_branch + add r0, r4, #1 + strh r0, [r6, #0x8] + b ._108 +._110: + .align 2, 0 +._109: + .word gTasks + .word 0x181 +._107: + strh r5, [r6, #0x8] +._108: + add r4, r2, r7 + lsl r4, r4, #0x3 + add r4, r4, r8 + mov r2, #0xc + ldsh r1, [r4, r2] + b ._111 +._106: + mov r0, #0x4 + and r0, r0, r1 + cmp r0, #0 + beq ._112 @cond_branch + ldr r1, ._115 @ gTasks + lsl r2, r6, #0x2 + add r0, r2, r6 + lsl r0, r0, #0x3 + add r3, r0, r1 + ldrh r6, [r3, #0x8] + mov r4, #0x8 + ldsh r0, [r3, r4] + mov r8, r1 + cmp r0, #0x1 + ble ._113 @cond_branch + sub r0, r6, #1 + b ._114 +._116: + .align 2, 0 +._115: + .word gTasks +._113: + mov r0, #0xc1 + lsl r0, r0, #0x1 +._114: + strh r0, [r3, #0x8] + add r4, r2, r7 + lsl r4, r4, #0x3 + add r4, r4, r8 + mov r5, #0xc + ldsh r1, [r4, r5] +._111: + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + ldr r5, ._118 @ gSprites + add r0, r0, r5 + bl DestroySprite + mov r0, #0xe + ldsh r1, [r4, r0] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r5 + bl DestroySprite + ldr r0, ._118 + 4 @ debug_80C3A50 + str r0, [r4] + b ._117 +._119: + .align 2, 0 +._118: + .word gSprites + .word debug_80C3A50+1 +._112: + ldr r0, ._120 @ gTasks + lsl r5, r7, #0x2 + add r5, r5, r7 + lsl r5, r5, #0x3 + add r5, r5, r0 + ldrh r4, [r5, #0x16] + ldrh r6, [r5, #0x12] + str r4, [sp] + mov r0, #0x1 + add r1, r4, #0 + mov r2, #0x0 + mov r3, #0x0 + bl SetOamMatrix + add r0, r4, #0 + mov r1, #0x1 + mov r2, #0x3 + mov r3, #0x4 + bl debug_80C68CC + add r0, r6, #0 + mov r1, #0x1 + mov r2, #0x7 + mov r3, #0x4 + bl debug_80C68CC + ldr r2, ._120 + 4 @ gSprites + mov r8, r2 + mov r4, #0xc + ldsh r1, [r5, r4] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r8 + strh r6, [r0, #0x26] + ldrh r4, [r5, #0x14] + ldrh r6, [r5, #0x10] + str r4, [sp] + mov r0, #0x2 + add r1, r4, #0 + mov r2, #0x0 + mov r3, #0x0 + bl SetOamMatrix + add r0, r4, #0 + mov r1, #0x19 + mov r2, #0x3 + mov r3, #0x4 + bl debug_80C68CC + add r0, r6, #0 + mov r1, #0x19 + mov r2, #0x7 + mov r3, #0x4 + bl debug_80C68CC + mov r0, #0xe + ldsh r1, [r5, r0] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r8 + strh r6, [r0, #0x26] + ldr r2, ._120 + 8 @ 0x4000040 + mov r4, #0x18 + ldsh r1, [r5, r4] + lsl r1, r1, #0x6 + add r0, r1, #0 + add r0, r0, #0x38 + lsl r0, r0, #0x8 + add r1, r1, #0x78 + add r0, r0, r1 + strh r0, [r2] +._117: + add sp, sp, #0x4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._121: + .align 2, 0 +._120: + .word gTasks + .word gSprites + .word 0x4000040 + + thumb_func_end debug_80C3D2C + + thumb_func_start debug_80C405C +debug_80C405C: + push {r4, r5, lr} + add r4, r0, #0 + lsl r1, r1, #0x10 + lsr r5, r1, #0x10 + mov r2, #0x0 + mov r1, #0x0 +._122: + add r0, r4, r2 + strb r1, [r0] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x9 + bls ._122 @cond_branch + add r0, r4, r2 + mov r1, #0xff + strb r1, [r0] + mov r0, #0xae + strb r0, [r4] + cmp r5, #0 + beq ._125 @cond_branch + mov r2, #0x0 + ldr r3, ._127 @ gSpeciesNames + mov r0, #0xb + add r1, r5, #0 + mul r1, r1, r0 + add r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0xff + beq ._125 @cond_branch + add r5, r3, #0 + add r3, r1, #0 +._126: + add r1, r4, r2 + add r0, r2, r3 + add r0, r0, r5 + ldrb r0, [r0] + strb r0, [r1] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + add r0, r2, r3 + add r0, r0, r5 + ldrb r0, [r0] + cmp r0, #0xff + beq ._125 @cond_branch + cmp r2, #0x9 + bls ._126 @cond_branch +._125: + pop {r4, r5} + pop {r0} + bx r0 +._128: + .align 2, 0 +._127: + .word gSpeciesNames + + thumb_func_end debug_80C405C + + thumb_func_start debug_80C40C4 +debug_80C40C4: + push {r4, r5, r6, r7, lr} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + mov r5, #0x0 + mov r6, sp +._135: + cmp r7, #0 + beq ._129 @cond_branch + mov r0, #0x64 + add r1, r5, #0 + mul r1, r1, r0 + ldr r0, ._132 @ gEnemyParty + add r4, r1, r0 + add r0, r4, #0 + mov r1, #0xb + bl GetMonData + cmp r0, #0 + beq ._134 @cond_branch + add r0, r4, #0 + bl CalculateMonStats + add r0, r4, #0 + mov r1, #0x3a + bl GetMonData + strh r0, [r6] + add r0, r4, #0 + mov r1, #0x39 + mov r2, sp + bl SetMonData + b ._134 +._133: + .align 2, 0 +._132: + .word gEnemyParty +._129: + mov r0, #0x64 + add r1, r5, #0 + mul r1, r1, r0 + ldr r0, ._136 @ gPlayerParty + add r4, r1, r0 + add r0, r4, #0 + mov r1, #0xb + bl GetMonData + cmp r0, #0 + beq ._134 @cond_branch + add r0, r4, #0 + bl CalculateMonStats + add r0, r4, #0 + mov r1, #0x3a + bl GetMonData + strh r0, [r6] + add r0, r4, #0 + mov r1, #0x39 + mov r2, sp + bl SetMonData +._134: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x5 + bls ._135 @cond_branch + add sp, sp, #0x4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._137: + .align 2, 0 +._136: + .word gPlayerParty + + thumb_func_end debug_80C40C4 + + thumb_func_start InitBattleForDebug +InitBattleForDebug: + push {lr} + bl SavePlayerParty + ldr r1, ._138 @ gUnknown_Debug_2038A0C + ldr r0, ._138 + 4 @ gSaveBlock2 + ldrb r2, [r0, #0x8] + mov r0, #0x0 + strb r2, [r1, #0xd] + strb r0, [r1] + strb r0, [r1, #0x1] + strb r0, [r1, #0x2] + strb r0, [r1, #0x3] + strb r0, [r1, #0x4] + strb r0, [r1, #0x5] + strb r0, [r1, #0x6] + strb r0, [r1, #0x7] + strb r0, [r1, #0x8] + strb r0, [r1, #0xc] + ldr r1, ._138 + 8 @ byte_3005E30 + str r0, [r1] + bl ZeroPlayerPartyMons + bl ZeroEnemyPartyMons + mov r0, #0x0 + bl debug_80C4214 + ldr r0, ._138 + 12 @ debug_80C47BC + mov r1, #0x0 + bl CreateTask + pop {r0} + bx r0 +._139: + .align 2, 0 +._138: + .word gUnknown_Debug_2038A0C + .word gSaveBlock2 + .word byte_3005E30 + .word debug_80C47BC+1 + + thumb_func_end InitBattleForDebug + + thumb_func_start debug_80C41A8 +debug_80C41A8: + push {lr} + ldr r1, ._140 @ gUnknown_Debug_2038A0C + mov r0, #0x0 + strb r0, [r1, #0x1] + strb r0, [r1, #0x2] + bl ZeroPlayerPartyMons + bl ZeroEnemyPartyMons + mov r0, #0x0 + bl debug_80C4214 + ldr r0, ._140 + 4 @ debug_80C47BC + mov r1, #0x0 + bl CreateTask + pop {r0} + bx r0 +._141: + .align 2, 0 +._140: + .word gUnknown_Debug_2038A0C + .word debug_80C47BC+1 + + thumb_func_end debug_80C41A8 + + thumb_func_start debug_80C41D4 +debug_80C41D4: + push {lr} + mov r0, #0x0 + bl debug_80C40C4 + mov r0, #0x0 + bl debug_80C4214 + ldr r0, ._142 @ debug_80C42B8 + mov r1, #0x0 + bl CreateTask + pop {r0} + bx r0 +._143: + .align 2, 0 +._142: + .word debug_80C42B8+1 + + thumb_func_end debug_80C41D4 + + thumb_func_start debug_80C41F4 +debug_80C41F4: + push {lr} + mov r0, #0x1 + bl debug_80C40C4 + mov r0, #0x1 + bl debug_80C4214 + ldr r0, ._144 @ debug_80C42B8 + mov r1, #0x0 + bl CreateTask + pop {r0} + bx r0 +._145: + .align 2, 0 +._144: + .word debug_80C42B8+1 + + thumb_func_end debug_80C41F4 + + thumb_func_start debug_80C4214 +debug_80C4214: + push {r4, r5, r6, lr} + bl debug_80C35DC + ldr r6, ._146 @ 0x4000040 + mov r4, #0x0 + strh r4, [r6] + ldr r5, ._146 + 4 @ 0x4000044 + strh r4, [r5] + ldr r0, ._146 + 8 @ 0x4000042 + strh r4, [r0] + add r0, r0, #0x4 + strh r4, [r0] + ldr r1, ._146 + 12 @ 0x4000048 + ldr r2, ._146 + 16 @ 0x1111 + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x2 + mov r0, #0x31 + strh r0, [r1] + add r1, r1, #0x6 + mov r0, #0xe1 + strh r0, [r1] + ldr r0, ._146 + 20 @ 0x4000052 + strh r4, [r0] + add r1, r1, #0x4 + mov r0, #0x7 + strh r0, [r1] + ldr r3, ._146 + 24 @ 0x4000208 + ldrh r2, [r3] + strh r4, [r3] + ldr r4, ._146 + 28 @ 0x4000200 + ldrh r0, [r4] + mov r1, #0x1 + orr r0, r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r0, ._146 + 32 @ debug_80C3758 + bl SetVBlankCallback + ldr r0, ._146 + 36 @ debug_80C370C + bl SetMainCallback2 + mov r1, #0x80 + lsl r1, r1, #0x13 + ldr r2, ._146 + 40 @ 0x7140 + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._146 + 44 @ 0x1ef + add r0, r1, #0 + strh r0, [r6] + ldr r2, ._146 + 48 @ 0x819f + add r0, r2, #0 + strh r0, [r5] + pop {r4, r5, r6} + pop {r0} + bx r0 +._147: + .align 2, 0 +._146: + .word 0x4000040 + .word 0x4000044 + .word 0x4000042 + .word 0x4000048 + .word 0x1111 + .word 0x4000052 + .word 0x4000208 + .word 0x4000200 + .word debug_80C3758+1 + .word debug_80C370C+1 + .word 0x7140 + .word 0x1ef + .word 0x819f + + thumb_func_end debug_80C4214 + + thumb_func_start debug_80C42B8 +debug_80C42B8: + push {r4, r5, lr} + add sp, sp, #0xffffffe4 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + ldr r1, ._150 @ gUnknown_Debug_083F8194 + mov r0, sp + mov r2, #0xc + bl memcpy + add r4, sp, #0xc + ldr r1, ._150 + 4 @ gUnknown_Debug_083F81A0 + add r0, r4, #0 + mov r2, #0xd + bl memcpy + mov r0, #0x0 + mov r1, #0x10 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + mov r0, sp + mov r1, #0x1 + mov r2, #0x11 + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0x14 + mov r2, #0x11 + bl Menu_PrintText + bl debug_80C4694 + bl debug_80C4704 + ldr r0, ._150 + 8 @ gUnknown_Debug_2038A0C + ldrb r0, [r0] + cmp r0, #0 + beq ._148 @cond_branch + ldr r0, ._150 + 12 @ gTasks + lsl r1, r5, #0x2 + add r1, r1, r5 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._150 + 16 @ debug_80C44EC + b ._149 +._151: + .align 2, 0 +._150: + .word gUnknown_Debug_083F8194 + .word gUnknown_Debug_083F81A0 + .word gUnknown_Debug_2038A0C + .word gTasks + .word debug_80C44EC+1 +._148: + ldr r0, ._152 @ gTasks + lsl r1, r5, #0x2 + add r1, r1, r5 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._152 + 4 @ debug_80C4348 +._149: + str r0, [r1] + add sp, sp, #0x1c + pop {r4, r5} + pop {r0} + bx r0 +._153: + .align 2, 0 +._152: + .word gTasks + .word debug_80C4348+1 + + thumb_func_end debug_80C42B8 + + thumb_func_start debug_80C4348 +debug_80C4348: + push {r4, lr} + add sp, sp, #0xfffffffc + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + ldr r0, ._154 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0x1] + lsl r0, r0, #0x19 + mov r1, #0xc0 + lsl r1, r1, #0x12 + add r0, r0, r1 + lsr r0, r0, #0x18 + mov r1, #0x1 + str r1, [sp] + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r1, ._154 + 4 @ 0x4000042 + ldr r2, ._154 + 8 @ 0x177 + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + add r2, r2, #0x8 + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._154 + 12 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._154 + 16 @ debug_80C43A8 + str r1, [r0] + add sp, sp, #0x4 + pop {r4} + pop {r0} + bx r0 +._155: + .align 2, 0 +._154: + .word gUnknown_Debug_2038A0C + .word 0x4000042 + .word 0x177 + .word gTasks + .word debug_80C43A8+1 + + thumb_func_end debug_80C4348 + + thumb_func_start debug_80C43A8 +debug_80C43A8: + push {r4, r5, lr} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r1, ._158 @ gMain + ldrh r2, [r1, #0x2e] + mov r0, #0x1 + and r0, r0, r2 + add r3, r1, #0 + cmp r0, #0 + beq ._156 @cond_branch + mov r0, #0x5 + bl PlaySE + ldr r0, ._158 + 4 @ gUnknown_Debug_2038A0C + ldrb r1, [r0, #0x1] + mov r0, #0x64 + mul r0, r0, r1 + ldr r1, ._158 + 8 @ gPlayerParty + add r0, r0, r1 + ldr r1, ._158 + 12 @ debug_80C41D4 + bl debug_sub_80A433C + add r0, r4, #0 + bl DestroyTask + b ._180 +._159: + .align 2, 0 +._158: + .word gMain + .word gUnknown_Debug_2038A0C + .word gPlayerParty + .word debug_80C41D4+1 +._156: + mov r0, #0x2 + and r0, r0, r2 + cmp r0, #0 + beq ._160 @cond_branch + ldr r0, ._162 @ gTasks + lsl r1, r4, #0x2 + add r1, r1, r4 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._162 + 4 @ debug_80C4F48 + str r0, [r1] + b ._180 +._163: + .align 2, 0 +._162: + .word gTasks + .word debug_80C4F48+1 +._160: + mov r0, #0x8 + and r0, r0, r2 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + cmp r1, #0 + beq ._164 @cond_branch + bl debug_80C4774 + lsl r0, r0, #0x18 + cmp r0, #0 + beq ._180 @cond_branch + mov r0, #0x5 + bl PlaySE + bl CalculatePlayerPartyCount + bl CalculateEnemyPartyCount + ldr r0, ._167 @ gTasks + lsl r1, r4, #0x2 + add r1, r1, r4 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._167 + 4 @ debug_80C4D14 + str r0, [r1] + b ._180 +._168: + .align 2, 0 +._167: + .word gTasks + .word debug_80C4D14+1 +._164: + mov r0, #0x88 + lsl r0, r0, #0x1 + and r0, r0, r2 + cmp r0, #0 + beq ._169 @cond_branch + str r1, [sp] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r0, ._171 @ gTasks + lsl r1, r4, #0x2 + add r1, r1, r4 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._171 + 4 @ debug_80C44EC + str r0, [r1] + b ._180 +._172: + .align 2, 0 +._171: + .word gTasks + .word debug_80C44EC+1 +._169: + ldrh r1, [r3, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._174 @cond_branch + ldr r1, ._176 @ gUnknown_Debug_2038A0C + ldrb r0, [r1, #0x1] + cmp r0, #0 + beq ._174 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1, #0x1] + b ._175 +._177: + .align 2, 0 +._176: + .word gUnknown_Debug_2038A0C +._174: + ldrh r1, [r3, #0x30] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._180 @cond_branch + ldr r5, ._181 @ gUnknown_Debug_2038A0C + ldrb r0, [r5, #0x1] + cmp r0, #0x4 + bhi ._180 @cond_branch + add r1, r0, #0 + mov r0, #0x64 + mul r0, r0, r1 + ldr r1, ._181 + 4 @ gPlayerParty + add r0, r0, r1 + mov r1, #0xb + bl GetMonData + cmp r0, #0 + beq ._180 @cond_branch + ldrb r0, [r5, #0x1] + add r0, r0, #0x1 + strb r0, [r5, #0x1] +._175: + ldr r1, ._181 + 8 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._181 + 12 @ debug_80C4348 + str r1, [r0] +._180: + add sp, sp, #0x4 + pop {r4, r5} + pop {r0} + bx r0 +._182: + .align 2, 0 +._181: + .word gUnknown_Debug_2038A0C + .word gPlayerParty + .word gTasks + .word debug_80C4348+1 + + thumb_func_end debug_80C43A8 + + thumb_func_start debug_80C44EC +debug_80C44EC: + push {r4, lr} + add sp, sp, #0xfffffffc + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + ldr r0, ._183 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0x2] + lsl r0, r0, #0x19 + mov r1, #0xc0 + lsl r1, r1, #0x12 + add r0, r0, r1 + lsr r0, r0, #0x18 + mov r1, #0x1 + str r1, [sp] + mov r1, #0x10 + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r1, ._183 + 4 @ 0x4000042 + ldr r2, ._183 + 8 @ 0x79ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r2, ._183 + 12 @ 0x17f + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._183 + 16 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._183 + 20 @ debug_80C4550 + str r1, [r0] + add sp, sp, #0x4 + pop {r4} + pop {r0} + bx r0 +._184: + .align 2, 0 +._183: + .word gUnknown_Debug_2038A0C + .word 0x4000042 + .word 0x79ef + .word 0x17f + .word gTasks + .word debug_80C4550+1 + + thumb_func_end debug_80C44EC + + thumb_func_start debug_80C4550 +debug_80C4550: + push {r4, r5, lr} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r1, ._187 @ gMain + ldrh r2, [r1, #0x2e] + mov r0, #0x1 + and r0, r0, r2 + add r3, r1, #0 + cmp r0, #0 + beq ._185 @cond_branch + mov r0, #0x5 + bl PlaySE + ldr r0, ._187 + 4 @ gUnknown_Debug_2038A0C + ldrb r1, [r0, #0x2] + mov r0, #0x64 + mul r0, r0, r1 + ldr r1, ._187 + 8 @ gEnemyParty + add r0, r0, r1 + ldr r1, ._187 + 12 @ debug_80C41F4 + bl debug_sub_80A433C + add r0, r4, #0 + bl DestroyTask + b ._209 +._188: + .align 2, 0 +._187: + .word gMain + .word gUnknown_Debug_2038A0C + .word gEnemyParty + .word debug_80C41F4+1 +._185: + mov r0, #0x2 + and r0, r0, r2 + cmp r0, #0 + beq ._189 @cond_branch + ldr r0, ._191 @ gTasks + lsl r1, r4, #0x2 + add r1, r1, r4 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._191 + 4 @ debug_80C4F48 + str r0, [r1] + b ._209 +._192: + .align 2, 0 +._191: + .word gTasks + .word debug_80C4F48+1 +._189: + mov r0, #0x8 + and r0, r0, r2 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + cmp r1, #0 + beq ._193 @cond_branch + bl debug_80C4774 + lsl r0, r0, #0x18 + cmp r0, #0 + beq ._209 @cond_branch + mov r0, #0x5 + bl PlaySE + bl CalculatePlayerPartyCount + bl CalculateEnemyPartyCount + ldr r0, ._196 @ gTasks + lsl r1, r4, #0x2 + add r1, r1, r4 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._196 + 4 @ debug_80C4D14 + str r0, [r1] + b ._209 +._197: + .align 2, 0 +._196: + .word gTasks + .word debug_80C4D14+1 +._193: + mov r0, #0x88 + lsl r0, r0, #0x2 + and r0, r0, r2 + cmp r0, #0 + beq ._198 @cond_branch + str r1, [sp] + mov r0, #0x0 + mov r1, #0x10 + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r0, ._200 @ gTasks + lsl r1, r4, #0x2 + add r1, r1, r4 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._200 + 4 @ debug_80C4348 + str r0, [r1] + b ._209 +._201: + .align 2, 0 +._200: + .word gTasks + .word debug_80C4348+1 +._198: + ldrh r1, [r3, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._203 @cond_branch + ldr r1, ._205 @ gUnknown_Debug_2038A0C + ldrb r0, [r1, #0x2] + cmp r0, #0 + beq ._203 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1, #0x2] + b ._204 +._206: + .align 2, 0 +._205: + .word gUnknown_Debug_2038A0C +._203: + ldrh r1, [r3, #0x30] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._209 @cond_branch + ldr r5, ._210 @ gUnknown_Debug_2038A0C + ldrb r0, [r5, #0x2] + cmp r0, #0x4 + bhi ._209 @cond_branch + add r1, r0, #0 + mov r0, #0x64 + mul r0, r0, r1 + ldr r1, ._210 + 4 @ gEnemyParty + add r0, r0, r1 + mov r1, #0xb + bl GetMonData + cmp r0, #0 + beq ._209 @cond_branch + ldrb r0, [r5, #0x2] + add r0, r0, #0x1 + strb r0, [r5, #0x2] +._204: + ldr r1, ._210 + 8 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._210 + 12 @ debug_80C44EC + str r1, [r0] +._209: + add sp, sp, #0x4 + pop {r4, r5} + pop {r0} + bx r0 +._211: + .align 2, 0 +._210: + .word gUnknown_Debug_2038A0C + .word gEnemyParty + .word gTasks + .word debug_80C44EC+1 + + thumb_func_end debug_80C4550 + + thumb_func_start debug_80C4694 +debug_80C4694: + push {r4, r5, lr} + add sp, sp, #0xffffffe4 + ldr r1, ._213 @ gUnknown_Debug_083F81AD + mov r0, sp + mov r2, #0xd + bl memcpy + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xe + mov r3, #0xf + bl Menu_DrawStdWindowFrame + mov r0, sp + mov r1, #0x2 + mov r2, #0x1 + bl Menu_PrintText + mov r4, #0x0 + add r5, sp, #0x10 +._212: + mov r0, #0x64 + mul r0, r0, r4 + ldr r1, ._213 + 4 @ gPlayerParty + add r0, r0, r1 + mov r1, #0xb + bl GetMonData + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r5, #0 + bl debug_80C405C + lsl r2, r4, #0x19 + mov r0, #0xc0 + lsl r0, r0, #0x12 + add r2, r2, r0 + lsr r2, r2, #0x18 + add r0, r5, #0 + mov r1, #0x2 + bl Menu_PrintText + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x5 + bls ._212 @cond_branch + add sp, sp, #0x1c + pop {r4, r5} + pop {r0} + bx r0 +._214: + .align 2, 0 +._213: + .word gUnknown_Debug_083F81AD + .word gPlayerParty + + thumb_func_end debug_80C4694 + + thumb_func_start debug_80C4704 +debug_80C4704: + push {r4, r5, lr} + add sp, sp, #0xffffffe4 + ldr r1, ._216 @ gUnknown_Debug_083F81BA + mov r0, sp + mov r2, #0xd + bl memcpy + mov r0, #0xf + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xf + bl Menu_DrawStdWindowFrame + mov r0, sp + mov r1, #0x11 + mov r2, #0x1 + bl Menu_PrintText + mov r4, #0x0 + add r5, sp, #0x10 +._215: + mov r0, #0x64 + mul r0, r0, r4 + ldr r1, ._216 + 4 @ gEnemyParty + add r0, r0, r1 + mov r1, #0xb + bl GetMonData + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r5, #0 + bl debug_80C405C + lsl r2, r4, #0x19 + mov r0, #0xc0 + lsl r0, r0, #0x12 + add r2, r2, r0 + lsr r2, r2, #0x18 + add r0, r5, #0 + mov r1, #0x11 + bl Menu_PrintText + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x5 + bls ._215 @cond_branch + add sp, sp, #0x1c + pop {r4, r5} + pop {r0} + bx r0 +._217: + .align 2, 0 +._216: + .word gUnknown_Debug_083F81BA + .word gEnemyParty + + thumb_func_end debug_80C4704 + + thumb_func_start debug_80C4774 +debug_80C4774: + push {r4, lr} + ldr r0, ._221 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0xc] + sub r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x64 + add r4, r0, #0 + mul r4, r4, r1 + ldr r0, ._221 + 4 @ gPlayerParty + add r0, r4, r0 + mov r1, #0xb + bl GetMonData + cmp r0, #0 + beq ._219 @cond_branch + ldr r0, ._221 + 8 @ gEnemyParty + add r0, r4, r0 + mov r1, #0xb + bl GetMonData + cmp r0, #0 + beq ._219 @cond_branch + mov r0, #0x1 + b ._220 +._222: + .align 2, 0 +._221: + .word gUnknown_Debug_2038A0C + .word gPlayerParty + .word gEnemyParty +._219: + mov r0, #0x0 +._220: + pop {r4} + pop {r1} + bx r1 + + thumb_func_end debug_80C4774 + + thumb_func_start debug_80C47BC +debug_80C47BC: + push {r4, r5, r6, r7, lr} + add sp, sp, #0xffffffc0 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + ldr r1, ._224 @ gUnknown_Debug_083F81C7 + mov r0, sp + mov r2, #0xf + bl memcpy + add r4, sp, #0x10 + ldr r1, ._224 + 4 @ gUnknown_Debug_083F81A0 + add r0, r4, #0 + mov r2, #0xd + bl memcpy + add r6, sp, #0x20 + ldr r1, ._224 + 8 @ gUnknown_Debug_083F81D6 + add r0, r6, #0 + mov r2, #0xf + bl memcpy + add r5, sp, #0x30 + ldr r1, ._224 + 12 @ gUnknown_Debug_083F81E5 + add r0, r5, #0 + mov r2, #0x10 + bl memcpy + mov r0, #0x0 + mov r1, #0x10 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + mov r0, sp + mov r1, #0x1 + mov r2, #0x11 + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0x14 + mov r2, #0x11 + bl Menu_PrintText + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xe + mov r3, #0xf + bl Menu_DrawStdWindowFrame + add r0, r6, #0 + mov r1, #0x2 + mov r2, #0x1 + bl Menu_PrintText + mov r4, #0x0 + ldr r6, ._224 + 16 @ gUnknown_Debug_083F8068 +._223: + lsl r0, r4, #0x3 + add r0, r0, r6 + ldr r0, [r0] + lsl r2, r4, #0x19 + mov r1, #0xc0 + lsl r1, r1, #0x12 + add r2, r2, r1 + lsr r2, r2, #0x18 + mov r1, #0x2 + bl Menu_PrintText + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x4 + bls ._223 @cond_branch + mov r0, #0xf + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xf + bl Menu_DrawStdWindowFrame + add r0, r5, #0 + mov r1, #0x11 + mov r2, #0x1 + bl Menu_PrintText + ldr r0, ._224 + 20 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0x4] + bl debug_80C4C44 + ldr r1, ._224 + 24 @ gTasks + lsl r0, r7, #0x2 + add r0, r0, r7 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._224 + 28 @ debug_80C48A0 + str r1, [r0] + add sp, sp, #0x40 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._225: + .align 2, 0 +._224: + .word gUnknown_Debug_083F81C7 + .word gUnknown_Debug_083F81A0 + .word gUnknown_Debug_083F81D6 + .word gUnknown_Debug_083F81E5 + .word gUnknown_Debug_083F8068 + .word gUnknown_Debug_2038A0C + .word gTasks + .word debug_80C48A0+1 + + thumb_func_end debug_80C47BC + + thumb_func_start debug_80C48A0 +debug_80C48A0: + push {r4, lr} + add sp, sp, #0xfffffffc + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + ldr r0, ._226 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0x3] + lsl r0, r0, #0x19 + mov r1, #0xc0 + lsl r1, r1, #0x12 + add r0, r0, r1 + lsr r0, r0, #0x18 + mov r1, #0x1 + str r1, [sp] + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r1, ._226 + 4 @ 0x4000042 + ldr r2, ._226 + 8 @ 0x177 + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + add r2, r2, #0x8 + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._226 + 12 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._226 + 16 @ debug_80C4900 + str r1, [r0] + add sp, sp, #0x4 + pop {r4} + pop {r0} + bx r0 +._227: + .align 2, 0 +._226: + .word gUnknown_Debug_2038A0C + .word 0x4000042 + .word 0x177 + .word gTasks + .word debug_80C4900+1 + + thumb_func_end debug_80C48A0 + + thumb_func_start debug_80C4900 +debug_80C4900: + push {r4, r5, lr} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + ldr r1, ._230 @ gMain + ldrh r2, [r1, #0x2e] + mov r0, #0x2 + and r0, r0, r2 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r3, r1, #0 + cmp r4, #0 + beq ._228 @cond_branch + mov r0, #0x5 + bl PlaySE + mov r0, #0x1 + neg r0, r0 + mov r4, #0x0 + str r4, [sp] + mov r1, #0x0 + mov r2, #0x0 + mov r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, ._230 + 4 @ debug_80C370C + bl SetMainCallback2 + bl LoadPlayerParty + ldr r1, ._230 + 8 @ gSaveBlock2 + ldr r0, ._230 + 12 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0xd] + strb r0, [r1, #0x8] + ldr r0, ._230 + 16 @ gBattleTypeFlags + mov r1, #0x0 + strh r4, [r0] + ldr r0, ._230 + 20 @ gUnknown_02023A14_50 + strb r1, [r0] + ldr r1, ._230 + 24 @ gTasks + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._230 + 28 @ debug_80C373C + b ._229 +._231: + .align 2, 0 +._230: + .word gMain + .word debug_80C370C+1 + .word gSaveBlock2 + .word gUnknown_Debug_2038A0C + .word gBattleTypeFlags + .word gUnknown_02023A14_50 + .word gTasks + .word debug_80C373C+1 +._228: + mov r0, #0x8 + and r0, r0, r2 + cmp r0, #0 + bne ._232 @cond_branch + mov r0, #0x1 + and r0, r0, r2 + cmp r0, #0 + beq ._233 @cond_branch +._232: + mov r0, #0x5 + bl PlaySE + ldr r1, ._236 @ gBattleTypeFlags + ldr r3, ._236 + 4 @ gUnknown_Debug_083F8068 + ldr r2, ._236 + 8 @ gUnknown_Debug_2038A0C + ldrb r0, [r2, #0x3] + lsl r0, r0, #0x3 + add r0, r0, r3 + ldrb r0, [r0, #0x4] + strh r0, [r1] + ldr r1, ._236 + 12 @ gUnknown_02023A14_50 + mov r0, #0x8 + strb r0, [r1] + ldrb r0, [r2, #0x3] + lsl r0, r0, #0x3 + add r0, r0, r3 + ldrb r0, [r0, #0x5] + strb r0, [r2, #0xc] + ldrb r0, [r2, #0x3] + sub r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x1 + bhi ._234 @cond_branch + str r4, [sp] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r0, ._236 + 16 @ gTasks + lsl r1, r5, #0x2 + add r1, r1, r5 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._236 + 20 @ debug_80C4A60 + str r0, [r1] + b ._247 +._237: + .align 2, 0 +._236: + .word gBattleTypeFlags + .word gUnknown_Debug_083F8068 + .word gUnknown_Debug_2038A0C + .word gUnknown_02023A14_50 + .word gTasks + .word debug_80C4A60+1 +._234: + ldr r0, ._239 @ gTasks + lsl r1, r5, #0x2 + add r1, r1, r5 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._239 + 4 @ debug_80C4F48 + str r0, [r1] + b ._247 +._240: + .align 2, 0 +._239: + .word gTasks + .word debug_80C4F48+1 +._233: + ldrh r1, [r3, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._242 @cond_branch + ldr r1, ._244 @ gUnknown_Debug_2038A0C + ldrb r0, [r1, #0x3] + cmp r0, #0 + beq ._242 @cond_branch + sub r0, r0, #0x1 + b ._243 +._245: + .align 2, 0 +._244: + .word gUnknown_Debug_2038A0C +._242: + ldrh r1, [r3, #0x30] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._247 @cond_branch + ldr r1, ._248 @ gUnknown_Debug_2038A0C + ldrb r0, [r1, #0x3] + cmp r0, #0x1 + bhi ._247 @cond_branch + add r0, r0, #0x1 +._243: + strb r0, [r1, #0x3] + ldr r1, ._248 + 4 @ gTasks + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._248 + 8 @ debug_80C48A0 +._229: + str r1, [r0] +._247: + add sp, sp, #0x4 + pop {r4, r5} + pop {r0} + bx r0 +._249: + .align 2, 0 +._248: + .word gUnknown_Debug_2038A0C + .word gTasks + .word debug_80C48A0+1 + + thumb_func_end debug_80C4900 + + thumb_func_start debug_80C4A60 +debug_80C4A60: + push {r4, lr} + add sp, sp, #0xfffffffc + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + ldr r0, ._250 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0x5] + lsl r0, r0, #0x19 + mov r1, #0xc0 + lsl r1, r1, #0x12 + add r0, r0, r1 + lsr r0, r0, #0x18 + mov r1, #0x1 + str r1, [sp] + mov r1, #0x10 + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r1, ._250 + 4 @ 0x4000042 + ldr r2, ._250 + 8 @ 0x79ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r2, ._250 + 12 @ 0x17f + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._250 + 16 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._250 + 20 @ debug_80C4AC4 + str r1, [r0] + add sp, sp, #0x4 + pop {r4} + pop {r0} + bx r0 +._251: + .align 2, 0 +._250: + .word gUnknown_Debug_2038A0C + .word 0x4000042 + .word 0x79ef + .word 0x17f + .word gTasks + .word debug_80C4AC4+1 + + thumb_func_end debug_80C4A60 + + thumb_func_start debug_80C4AC4 +debug_80C4AC4: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + ldr r7, ._255 @ gUnknown_Debug_2038A0C + ldrb r0, [r7, #0x4] + mov ip, r0 + ldrb r5, [r7, #0x5] + mov r1, ip + add r0, r1, r5 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + ldr r2, ._255 + 4 @ gMain + mov r8, r2 + ldrh r2, [r2, #0x2e] + mov r3, #0x1 + and r3, r3, r2 + add r4, r7, #0 + cmp r3, #0 + beq ._252 @cond_branch + ldr r0, ._255 + 8 @ gUnknown_Debug_083F80D8 + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r1, [r1] + ldr r3, ._255 + 12 @ byte_3005E30 + ldr r2, [r3] + add r0, r2, #0 + and r0, r0, r1 + cmp r0, #0 + beq ._253 @cond_branch + ldr r0, ._255 + 16 @ 0xffff + eor r1, r1, r0 + and r2, r2, r1 + b ._254 +._256: + .align 2, 0 +._255: + .word gUnknown_Debug_2038A0C + .word gMain + .word gUnknown_Debug_083F80D8 + .word byte_3005E30 + .word 0xffff +._253: + orr r2, r2, r1 +._254: + str r2, [r3] + ldrb r0, [r4, #0x4] + bl debug_80C4C44 + ldr r1, ._258 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._258 + 4 @ debug_80C4A60 + str r1, [r0] + b ._274 +._259: + .align 2, 0 +._258: + .word gTasks + .word debug_80C4A60+1 +._252: + mov r0, #0x2 + and r0, r0, r2 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0 + beq ._260 @cond_branch + str r3, [sp] + mov r0, #0x0 + mov r1, #0x10 + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r0, ._262 @ gTasks + lsl r1, r6, #0x2 + add r1, r1, r6 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._262 + 4 @ debug_80C48A0 + b ._261 +._263: + .align 2, 0 +._262: + .word gTasks + .word debug_80C48A0+1 +._260: + mov r0, #0x8 + and r0, r0, r2 + cmp r0, #0 + beq ._264 @cond_branch + mov r0, #0x5 + bl PlaySE + ldr r1, ._266 @ gTrainerBattleOpponent + mov r2, #0x80 + lsl r2, r2, #0x3 + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._266 + 4 @ 0x2017000 + ldrb r2, [r1, #0x1] + mov r0, #0x11 + neg r0, r0 + and r0, r0, r2 + strb r0, [r1, #0x1] + mov r0, #0xac + strb r0, [r1, #0x2] + mov r0, #0xff + strb r0, [r1, #0x3] + strb r4, [r1, #0x9] + strb r4, [r1, #0xa] + strb r4, [r1, #0xb] + strb r4, [r1, #0xc] + ldr r1, ._266 + 8 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._266 + 12 @ debug_80C4F48 + str r1, [r0] + b ._274 +._267: + .align 2, 0 +._266: + .word gTrainerBattleOpponent + .word 0x2017000 + .word gTasks + .word debug_80C4F48+1 +._264: + mov r0, r8 + ldrh r1, [r0, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._268 @cond_branch + lsl r0, r5, #0x18 + cmp r0, #0 + beq ._269 @cond_branch + sub r0, r5, #1 + strb r0, [r7, #0x5] + b ._277 +._269: + mov r1, ip + lsl r0, r1, #0x18 + cmp r0, #0 + beq ._277 @cond_branch + mov r0, ip + sub r0, r0, #0x1 + b ._272 +._268: + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._274 @cond_branch + lsl r0, r5, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x8 + bhi ._274 @cond_branch + cmp r0, #0x4 + bhi ._275 @cond_branch + add r0, r5, #1 + strb r0, [r7, #0x5] + b ._277 +._275: + mov r2, ip + lsl r0, r2, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x3 + bhi ._277 @cond_branch + mov r0, ip + add r0, r0, #0x1 +._272: + strb r0, [r7, #0x4] + ldrb r0, [r7, #0x4] + bl debug_80C4C44 +._277: + ldr r0, ._278 @ gTasks + lsl r1, r6, #0x2 + add r1, r1, r6 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._278 + 4 @ debug_80C4A60 +._261: + str r0, [r1] +._274: + add sp, sp, #0x4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._279: + .align 2, 0 +._278: + .word gTasks + .word debug_80C4A60+1 + + thumb_func_end debug_80C4AC4 + + thumb_func_start debug_80C4C44 +debug_80C4C44: + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, r9 + mov r5, r8 + push {r5, r6, r7} + add sp, sp, #0xfffffff0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov sl, r0 + mov r2, #0x0 + mov r5, sp +._290: + mov r0, sl + add r6, r2, r0 + add r4, r6, #0 + add r1, r2, #1 + mov r8, r1 + cmp r4, #0x9 + bgt ._280 @cond_branch + mov r3, #0x0 + ldr r1, ._288 @ gUnknown_Debug_083F80D8 + lsl r0, r4, #0x3 + add r0, r0, r1 + ldr r0, [r0] + ldrb r0, [r0] + ldr r7, ._288 + 4 @ byte_3005E30 + mov r9, r7 + lsl r2, r2, #0x1 + mov ip, r2 + cmp r0, #0xff + beq ._282 @cond_branch + add r7, r1, #0 +._283: + add r0, r3, #3 + mov r1, sp + add r2, r1, r0 + lsl r1, r6, #0x3 + add r1, r1, r7 + ldr r0, [r1] + add r0, r0, r3 + ldrb r0, [r0] + strb r0, [r2] + add r0, r3, #1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + ldr r0, [r1] + add r0, r0, r3 + ldrb r0, [r0] + cmp r0, #0xff + beq ._282 @cond_branch + cmp r3, #0xb + bls ._283 @cond_branch +._282: + cmp r3, #0xb + bhi ._284 @cond_branch + mov r1, #0x0 +._285: + add r0, r3, #3 + add r0, r0, sp + strb r1, [r0] + add r0, r3, #1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + cmp r3, #0xb + bls ._285 @cond_branch +._284: + mov r0, #0xff + strb r0, [r5, #0xe] + mov r0, #0xfc + strb r0, [r5] + mov r2, #0x1 + strb r2, [r5, #0x1] + add r1, r2, #0 + LSL r1, r4 + mov r3, r9 + ldr r0, [r3] + and r0, r0, r1 + cmp r0, #0 + beq ._286 @cond_branch + mov r0, #0x3 + strb r0, [r5, #0x2] + b ._287 +._289: + .align 2, 0 +._288: + .word gUnknown_Debug_083F80D8 + .word byte_3005E30 +._286: + strb r2, [r5, #0x2] +._287: + mov r2, ip + add r2, r2, #0x3 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + mov r0, sp + mov r1, #0x11 + bl Menu_PrintText +._280: + mov r7, r8 + lsl r0, r7, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x5 + bls ._290 @cond_branch + add sp, sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov r9, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_end debug_80C4C44 + + thumb_func_start debug_80C4D14 +debug_80C4D14: + push {r4, r5, r6, lr} + add sp, sp, #0xffffffd0 + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + ldr r1, ._291 @ gUnknown_Debug_083F81C7 + mov r0, sp + mov r2, #0xf + bl memcpy + add r5, sp, #0x10 + ldr r1, ._291 + 4 @ gUnknown_Debug_083F81F5 + add r0, r5, #0 + mov r2, #0xd + bl memcpy + add r6, sp, #0x20 + ldr r1, ._291 + 8 @ gUnknown_Debug_083F8202 + add r0, r6, #0 + mov r2, #0xf + bl memcpy + mov r0, #0x0 + mov r1, #0x10 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + mov r0, sp + mov r1, #0x1 + mov r2, #0x11 + bl Menu_PrintText + add r0, r5, #0 + mov r1, #0x14 + mov r2, #0x11 + bl Menu_PrintText + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xe + mov r3, #0xf + bl Menu_DrawStdWindowFrame + add r0, r6, #0 + mov r1, #0x2 + mov r2, #0x1 + bl Menu_PrintText + ldr r0, ._291 + 12 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0x6] + bl debug_80C4F00 + mov r0, #0xf + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xf + bl Menu_DrawStdWindowFrame + ldr r1, ._291 + 16 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._291 + 20 @ debug_80C4DB8 + str r1, [r0] + add sp, sp, #0x30 + pop {r4, r5, r6} + pop {r0} + bx r0 +._292: + .align 2, 0 +._291: + .word gUnknown_Debug_083F81C7 + .word gUnknown_Debug_083F81F5 + .word gUnknown_Debug_083F8202 + .word gUnknown_Debug_2038A0C + .word gTasks + .word debug_80C4DB8+1 + + thumb_func_end debug_80C4D14 + + thumb_func_start debug_80C4DB8 +debug_80C4DB8: + push {r4, lr} + add sp, sp, #0xfffffffc + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + ldr r0, ._293 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0x7] + lsl r0, r0, #0x19 + mov r1, #0xc0 + lsl r1, r1, #0x12 + add r0, r0, r1 + lsr r0, r0, #0x18 + mov r1, #0x1 + str r1, [sp] + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r1, ._293 + 4 @ 0x4000042 + ldr r2, ._293 + 8 @ 0x177 + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + add r2, r2, #0x8 + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._293 + 12 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._293 + 16 @ debug_80C4E18 + str r1, [r0] + add sp, sp, #0x4 + pop {r4} + pop {r0} + bx r0 +._294: + .align 2, 0 +._293: + .word gUnknown_Debug_2038A0C + .word 0x4000042 + .word 0x177 + .word gTasks + .word debug_80C4E18+1 + + thumb_func_end debug_80C4DB8 + + thumb_func_start debug_80C4E18 +debug_80C4E18: + push {r4, r5, r6, r7, lr} + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r5, ._297 @ gUnknown_Debug_2038A0C + ldrb r3, [r5, #0x6] + ldrb r2, [r5, #0x7] + add r0, r3, r2 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + ldr r7, ._297 + 4 @ gMain + ldrh r1, [r7, #0x2e] + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._295 @cond_branch + ldr r0, ._297 + 8 @ gTasks + lsl r1, r4, #0x2 + add r1, r1, r4 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._297 + 12 @ debug_80C42B8 + b ._296 +._298: + .align 2, 0 +._297: + .word gUnknown_Debug_2038A0C + .word gMain + .word gTasks + .word debug_80C42B8+1 +._295: + mov r0, #0x8 + and r0, r0, r1 + cmp r0, #0 + bne ._299 @cond_branch + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._300 @cond_branch +._299: + mov r0, #0x5 + bl PlaySE + ldr r2, ._302 @ gBattleTerrain + ldr r1, ._302 + 4 @ gUnknown_Debug_083F814C + lsl r0, r6, #0x3 + add r0, r0, r1 + ldrb r0, [r0, #0x4] + strb r0, [r2] + ldr r1, ._302 + 8 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._302 + 12 @ debug_80C5158 + str r1, [r0] + b ._310 +._303: + .align 2, 0 +._302: + .word gBattleTerrain + .word gUnknown_Debug_083F814C + .word gTasks + .word debug_80C5158+1 +._300: + ldrh r1, [r7, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._304 @cond_branch + lsl r0, r2, #0x18 + cmp r0, #0 + beq ._305 @cond_branch + sub r0, r2, #1 + strb r0, [r5, #0x7] + b ._313 +._305: + lsl r0, r3, #0x18 + cmp r0, #0 + beq ._313 @cond_branch + sub r0, r3, #1 + b ._308 +._304: + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._310 @cond_branch + lsl r0, r2, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x7 + bhi ._310 @cond_branch + cmp r0, #0x4 + bhi ._311 @cond_branch + add r0, r2, #1 + strb r0, [r5, #0x7] + b ._313 +._311: + lsl r0, r3, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x2 + bhi ._313 @cond_branch + add r0, r3, #1 +._308: + strb r0, [r5, #0x6] + ldrb r0, [r5, #0x6] + bl debug_80C4F00 +._313: + ldr r0, ._314 @ gTasks + lsl r1, r4, #0x2 + add r1, r1, r4 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._314 + 4 @ debug_80C4DB8 +._296: + str r0, [r1] +._310: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._315: + .align 2, 0 +._314: + .word gTasks + .word debug_80C4DB8+1 + + thumb_func_end debug_80C4E18 + + thumb_func_start debug_80C4F00 +debug_80C4F00: + push {r4, r5, r6, lr} + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + mov r0, #0x1 + mov r1, #0x3 + mov r2, #0xd + mov r3, #0xe + bl Menu_BlankWindowRect + mov r4, #0x0 + ldr r6, ._318 @ gUnknown_Debug_083F814C +._317: + cmp r4, #0x8 + bhi ._316 @cond_branch + add r0, r4, r5 + lsl r0, r0, #0x3 + add r0, r0, r6 + ldr r0, [r0] + lsl r2, r4, #0x19 + mov r1, #0xc0 + lsl r1, r1, #0x12 + add r2, r2, r1 + lsr r2, r2, #0x18 + mov r1, #0x2 + bl Menu_PrintText +._316: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x5 + bls ._317 @cond_branch + pop {r4, r5, r6} + pop {r0} + bx r0 +._319: + .align 2, 0 +._318: + .word gUnknown_Debug_083F814C + + thumb_func_end debug_80C4F00 + + thumb_func_start debug_80C4F48 +debug_80C4F48: + push {r4, r5, r6, lr} + mov r6, r9 + mov r5, r8 + push {r5, r6} + add sp, sp, #0xffffffc4 + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + ldr r1, ._320 @ gUnknown_Debug_083F8211 + mov r0, sp + mov r2, #0x11 + bl memcpy + add r6, sp, #0x14 + ldr r1, ._320 + 4 @ gUnknown_Debug_083F81A0 + add r0, r6, #0 + mov r2, #0xd + bl memcpy + add r5, sp, #0x24 + ldr r1, ._320 + 8 @ gUnknown_Debug_083F8222 + add r0, r5, #0 + mov r2, #0xd + bl memcpy + add r0, sp, #0x34 + mov r9, r0 + ldr r1, ._320 + 12 @ gUnknown_Debug_083F822F + mov r2, #0x4 + bl memcpy + add r0, sp, #0x38 + mov r8, r0 + ldr r1, ._320 + 16 @ gUnknown_Debug_083F8233 + mov r2, #0x4 + bl memcpy + mov r0, #0x0 + mov r1, #0x10 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + mov r0, sp + mov r1, #0x1 + mov r2, #0x11 + bl Menu_PrintText + add r0, r6, #0 + mov r1, #0x14 + mov r2, #0x11 + bl Menu_PrintText + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xe + mov r3, #0xf + bl Menu_DrawStdWindowFrame + add r0, r5, #0 + mov r1, #0x2 + mov r2, #0x1 + bl Menu_PrintText + mov r0, #0x1 + mov r1, #0x3 + mov r2, #0xd + mov r3, #0xe + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0x2 + mov r2, #0x1 + bl Menu_PrintText + mov r0, r9 + mov r1, #0x2 + mov r2, #0x3 + bl Menu_PrintText + mov r0, r8 + mov r1, #0x2 + mov r2, #0x5 + bl Menu_PrintText + mov r0, #0xf + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xf + bl Menu_DrawStdWindowFrame + ldr r1, ._320 + 20 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._320 + 24 @ debug_80C5038 + str r1, [r0] + add sp, sp, #0x3c + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 +._321: + .align 2, 0 +._320: + .word gUnknown_Debug_083F8211 + .word gUnknown_Debug_083F81A0 + .word gUnknown_Debug_083F8222 + .word gUnknown_Debug_083F822F + .word gUnknown_Debug_083F8233 + .word gTasks + .word debug_80C5038+1 + + thumb_func_end debug_80C4F48 + + thumb_func_start debug_80C5038 +debug_80C5038: + push {r4, lr} + add sp, sp, #0xfffffffc + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + ldr r0, ._322 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0x8] + lsl r0, r0, #0x19 + mov r1, #0xc0 + lsl r1, r1, #0x12 + add r0, r0, r1 + lsr r0, r0, #0x18 + mov r1, #0x1 + str r1, [sp] + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r1, ._322 + 4 @ 0x4000042 + ldr r2, ._322 + 8 @ 0x177 + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + add r2, r2, #0x8 + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._322 + 12 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._322 + 16 @ debug_80C5098 + str r1, [r0] + add sp, sp, #0x4 + pop {r4} + pop {r0} + bx r0 +._323: + .align 2, 0 +._322: + .word gUnknown_Debug_2038A0C + .word 0x4000042 + .word 0x177 + .word gTasks + .word debug_80C5098+1 + + thumb_func_end debug_80C5038 + + thumb_func_start debug_80C5098 +debug_80C5098: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r1, ._326 @ gMain + ldrh r2, [r1, #0x2e] + mov r0, #0x2 + and r0, r0, r2 + add r3, r1, #0 + cmp r0, #0 + beq ._324 @cond_branch + ldr r0, ._326 + 4 @ gTasks + lsl r1, r4, #0x2 + add r1, r1, r4 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._326 + 8 @ debug_80C47BC + str r0, [r1] + b ._339 +._327: + .align 2, 0 +._326: + .word gMain + .word gTasks + .word debug_80C47BC+1 +._324: + mov r0, #0x8 + and r0, r0, r2 + cmp r0, #0 + bne ._328 @cond_branch + mov r0, #0x1 + and r0, r0, r2 + cmp r0, #0 + beq ._329 @cond_branch +._328: + mov r0, #0x5 + bl PlaySE + ldr r1, ._331 @ gSaveBlock2 + ldr r0, ._331 + 4 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0x8] + strb r0, [r1, #0x8] + ldr r1, ._331 + 8 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._331 + 12 @ debug_80C42B8 + b ._330 +._332: + .align 2, 0 +._331: + .word gSaveBlock2 + .word gUnknown_Debug_2038A0C + .word gTasks + .word debug_80C42B8+1 +._329: + ldrh r1, [r3, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._334 @cond_branch + ldr r1, ._336 @ gUnknown_Debug_2038A0C + ldrb r0, [r1, #0x8] + cmp r0, #0 + beq ._334 @cond_branch + sub r0, r0, #0x1 + b ._335 +._337: + .align 2, 0 +._336: + .word gUnknown_Debug_2038A0C +._334: + ldrh r1, [r3, #0x30] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._339 @cond_branch + ldr r1, ._340 @ gUnknown_Debug_2038A0C + ldrb r0, [r1, #0x8] + cmp r0, #0 + bne ._339 @cond_branch + add r0, r0, #0x1 +._335: + strb r0, [r1, #0x8] + ldr r1, ._340 + 4 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._340 + 8 @ debug_80C5038 +._330: + str r1, [r0] +._339: + pop {r4} + pop {r0} + bx r0 +._341: + .align 2, 0 +._340: + .word gUnknown_Debug_2038A0C + .word gTasks + .word debug_80C5038+1 + + thumb_func_end debug_80C5098 + + thumb_func_start debug_80C5158 +debug_80C5158: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r2, ._342 @ gTasks + lsl r1, r0, #0x2 + add r1, r1, r0 + lsl r1, r1, #0x3 + add r1, r1, r2 + ldr r0, ._342 + 4 @ debug_80C5174 + str r0, [r1] + bx lr +._343: + .align 2, 0 +._342: + .word gTasks + .word debug_80C5174+1 + + thumb_func_end debug_80C5158 + + thumb_func_start debug_80C5174 +debug_80C5174: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r2, ._344 @ gTasks + lsl r1, r0, #0x2 + add r1, r1, r0 + lsl r1, r1, #0x3 + add r1, r1, r2 + ldr r0, ._344 + 4 @ debug_80C5190 + str r0, [r1] + bx lr +._345: + .align 2, 0 +._344: + .word gTasks + .word debug_80C5190+1 + + thumb_func_end debug_80C5174 + + thumb_func_start debug_80C5190 +debug_80C5190: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r2, ._346 @ gTasks + lsl r1, r0, #0x2 + add r1, r1, r0 + lsl r1, r1, #0x3 + add r1, r1, r2 + ldr r0, ._346 + 4 @ debug_80C51AC + str r0, [r1] + bx lr +._347: + .align 2, 0 +._346: + .word gTasks + .word debug_80C51AC+1 + + thumb_func_end debug_80C5190 + + thumb_func_start debug_80C51AC +debug_80C51AC: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r2, ._348 @ gTasks + lsl r1, r0, #0x2 + add r1, r1, r0 + lsl r1, r1, #0x3 + add r1, r1, r2 + ldr r0, ._348 + 4 @ debug_80C51C8 + str r0, [r1] + bx lr +._349: + .align 2, 0 +._348: + .word gTasks + .word debug_80C51C8+1 + + thumb_func_end debug_80C51AC + + thumb_func_start debug_80C51C8 +debug_80C51C8: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r2, ._350 @ gTasks + lsl r1, r0, #0x2 + add r1, r1, r0 + lsl r1, r1, #0x3 + add r1, r1, r2 + ldr r0, ._350 + 4 @ debug_80C51E4 + str r0, [r1] + bx lr +._351: + .align 2, 0 +._350: + .word gTasks + .word debug_80C51E4+1 + + thumb_func_end debug_80C51C8 + + thumb_func_start debug_80C51E4 +debug_80C51E4: + push {lr} + bl sub_80408BC + ldr r0, ._352 @ gMain + ldr r1, ._352 + 4 @ debug_80C41A8 + str r1, [r0, #0x8] + ldr r0, ._352 + 8 @ unref_sub_800D684 + bl SetMainCallback2 + pop {r0} + bx r0 +._353: + .align 2, 0 +._352: + .word gMain + .word debug_80C41A8+1 + .word unref_sub_800D684+1 + + thumb_func_end debug_80C51E4 + + thumb_func_start debug_80C5208 +debug_80C5208: + push {r4, r5, r6, lr} + ldr r1, ._355 @ gUnknown_Debug_2038A1C + ldr r0, ._355 + 4 @ 0x2018000 + str r0, [r1] + mov r3, #0x0 + add r6, r1, #0 + ldr r4, ._355 + 8 @ gSaveBlock2 + add r5, r6, #0 + mov r2, #0x0 +._354: + ldr r0, [r5] + lsl r1, r3, #0x2 + add r0, r0, #0x64 + add r0, r0, r1 + str r2, [r0] + add r0, r3, #1 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + cmp r3, #0x3f + bls ._354 @cond_branch + ldr r2, [r6] + mov r0, #0xfc + str r0, [r2, #0x64] + ldrb r1, [r4, #0xa] + ldrb r0, [r4, #0xb] + lsl r0, r0, #0x8 + orr r1, r1, r0 + ldrb r0, [r4, #0xc] + lsl r0, r0, #0x10 + orr r1, r1, r0 + ldrb r0, [r4, #0xd] + lsl r0, r0, #0x18 + orr r1, r1, r0 + str r1, [r2, #0x70] + bl Random + add r4, r0, #0 + bl Random + ldr r1, [r6] + lsl r4, r4, #0x10 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + orr r4, r4, r0 + str r4, [r1, #0x74] + mov r0, #0x1 + str r0, [r1, #0x68] + str r0, [r1, #0x6c] + bl debug_80C5C94 + pop {r4, r5, r6} + pop {r0} + bx r0 +._356: + .align 2, 0 +._355: + .word gUnknown_Debug_2038A1C + .word 0x2018000 + .word gSaveBlock2 + + thumb_func_end debug_80C5208 + + thumb_func_start debug_80C527C +debug_80C527C: + push {r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r5, #0x0 + ldr r7, ._359 @ gPlayerPartyCount +._361: + mov r0, #0x64 + add r1, r5, #0 + mul r1, r1, r0 + ldr r0, ._359 + 4 @ gPlayerParty + add r4, r1, r0 + add r0, r4, #0 + mov r1, #0xb + mov r2, #0x0 + bl GetMonData + cmp r0, #0 + bne ._357 @cond_branch + add r0, r4, #0 + add r1, r6, #0 + mov r2, #0x64 + bl memcpy + add r0, r5, #1 + strb r0, [r7] + mov r0, #0x0 + b ._358 +._360: + .align 2, 0 +._359: + .word gPlayerPartyCount + .word gPlayerParty +._357: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x5 + bls ._361 @cond_branch + ldr r0, ._362 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + bl SendMonToPC + mov r0, #0x1 +._358: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._363: + .align 2, 0 +._362: + .word gUnknown_Debug_2038A1C + + thumb_func_end debug_80C527C + + thumb_func_start InitCreatePokemon +InitCreatePokemon: + push {r4, r5, lr} + add sp, sp, #0xffffffd4 + ldr r1, ._364 @ gUnknown_Debug_083F8733 + add r0, sp, #0x4 + mov r2, #0x25 + bl memcpy + bl debug_80C35DC + mov r0, #0x1 + neg r0, r0 + mov r4, #0x0 + str r4, [sp] + mov r1, #0x0 + mov r2, #0x10 + mov r3, #0x0 + bl BeginNormalPaletteFade + ldr r0, ._364 + 4 @ 0x4000050 + mov r5, #0x0 + strh r4, [r0] + add r0, r0, #0x2 + strh r4, [r0] + add r0, r0, #0x2 + strh r4, [r0] + ldr r3, ._364 + 8 @ 0x4000208 + ldrh r2, [r3] + strh r4, [r3] + ldr r4, ._364 + 12 @ 0x4000200 + ldrh r0, [r4] + mov r1, #0x1 + orr r0, r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, ._364 + 16 @ 0x4000004 + ldrh r0, [r2] + mov r1, #0x8 + orr r0, r0, r1 + strh r0, [r2] + ldr r0, ._364 + 20 @ debug_80C3758 + bl SetVBlankCallback + ldr r0, ._364 + 24 @ debug_80C370C + bl SetMainCallback2 + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x3 + bl Menu_DrawStdWindowFrame + add r0, sp, #0x4 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + mov r1, #0x80 + lsl r1, r1, #0x13 + mov r2, #0x8a + lsl r2, r2, #0x5 + add r0, r2, #0 + strh r0, [r1] + ldr r0, ._364 + 28 @ debug_80C53A4 + mov r1, #0x0 + bl CreateTask + bl debug_80C5208 + ldr r1, ._364 + 32 @ gUnknown_Debug_2038A1C + ldr r0, [r1] + mov r2, #0xb4 + lsl r2, r2, #0x1 + add r0, r0, r2 + strb r5, [r0] + ldr r0, [r1] + ldr r1, ._364 + 36 @ 0x169 + add r0, r0, r1 + strb r5, [r0] + add sp, sp, #0x2c + pop {r4, r5} + pop {r0} + bx r0 +._365: + .align 2, 0 +._364: + .word gUnknown_Debug_083F8733 + .word 0x4000050 + .word 0x4000208 + .word 0x4000200 + .word 0x4000004 + .word debug_80C3758+1 + .word debug_80C370C+1 + .word debug_80C53A4+1 + .word gUnknown_Debug_2038A1C + .word 0x169 + + thumb_func_end InitCreatePokemon + + thumb_func_start debug_80C53A4 +debug_80C53A4: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r2, ._366 @ gTasks + lsl r1, r0, #0x2 + add r1, r1, r0 + lsl r1, r1, #0x3 + add r1, r1, r2 + ldr r0, ._366 + 4 @ debug_80C53C0 + str r0, [r1] + bx lr +._367: + .align 2, 0 +._366: + .word gTasks + .word debug_80C53C0+1 + + thumb_func_end debug_80C53A4 + + thumb_func_start debug_80C53C0 +debug_80C53C0: + push {r4, lr} + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + bl debug_80C6384 + mov r0, #0x0 + bl debug_80C627C + ldr r1, ._368 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._368 + 4 @ debug_80C53F0 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 +._369: + .align 2, 0 +._368: + .word gTasks + .word debug_80C53F0+1 + + thumb_func_end debug_80C53C0 + + thumb_func_start debug_80C53F0 +debug_80C53F0: + push {r4, r5, r6, lr} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + ldr r0, ._372 @ gMain + ldrh r1, [r0, #0x2e] + mov r2, #0x1 + and r2, r2, r1 + add r4, r0, #0 + cmp r2, #0 + beq ._370 @cond_branch + ldr r0, ._372 + 4 @ gUnknown_Debug_2038A1C + ldr r3, [r0] + mov r0, #0xb2 + lsl r0, r0, #0x1 + add r2, r3, r0 + ldr r1, ._372 + 8 @ gUnknown_Debug_083F8698 + mov r4, #0xb4 + lsl r4, r4, #0x1 + add r0, r3, r4 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r6, ._372 + 12 @ 0x169 + add r1, r3, r6 + ldrb r1, [r1] + ldr r0, [r0] + add r0, r0, r1 + ldrb r1, [r0] + lsl r1, r1, #0x2 + add r0, r3, #0 + add r0, r0, #0x64 + add r0, r0, r1 + ldr r0, [r0] + str r0, [r2] + mov r0, #0xb5 + lsl r0, r0, #0x1 + add r1, r3, r0 + mov r0, #0x0 + strb r0, [r1] + bl debug_80C643C + ldr r1, ._372 + 16 @ gTasks + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._372 + 20 @ debug_80C55E4 + b ._375 +._373: + .align 2, 0 +._372: + .word gMain + .word gUnknown_Debug_2038A1C + .word gUnknown_Debug_083F8698 + .word 0x169 + .word gTasks + .word debug_80C55E4+1 +._370: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._374 @cond_branch + mov r0, #0x1 + neg r0, r0 + str r2, [sp] + mov r1, #0x0 + mov r2, #0x0 + mov r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, ._376 @ debug_80C370C + bl SetMainCallback2 + ldr r1, ._376 + 4 @ gTasks + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._376 + 8 @ debug_80C373C + b ._375 +._377: + .align 2, 0 +._376: + .word debug_80C370C+1 + .word gTasks + .word debug_80C373C+1 +._374: + mov r0, #0x8 + and r0, r0, r1 + cmp r0, #0 + beq ._378 @cond_branch + mov r0, #0x5 + bl PlaySE + bl debug_80C5FFC + ldr r0, ._381 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + bl debug_80C527C + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + mov r0, #0x3 + mov r1, #0x8 + mov r2, #0x1a + mov r3, #0xb + bl Menu_DrawStdWindowFrame + cmp r4, #0 + beq ._379 @cond_branch + ldr r0, ._381 + 4 @ gUnknown_Debug_083F872A + mov r1, #0x4 + mov r2, #0x9 + bl Menu_PrintText + b ._380 +._382: + .align 2, 0 +._381: + .word gUnknown_Debug_2038A1C + .word gUnknown_Debug_083F872A +._379: + ldr r0, ._384 @ gUnknown_Debug_083F8720 + mov r1, #0x4 + mov r2, #0x9 + bl Menu_PrintText +._380: + ldr r0, ._384 + 4 @ gTasks + lsl r1, r5, #0x2 + add r1, r1, r5 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._384 + 8 @ debug_80C5708 + str r0, [r1] + b ._400 +._385: + .align 2, 0 +._384: + .word gUnknown_Debug_083F8720 + .word gTasks + .word debug_80C5708+1 +._378: + mov r0, #0x4 + and r0, r0, r1 + cmp r0, #0 + beq ._386 @cond_branch + ldr r0, ._388 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + ldr r4, [r0, #0x64] + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + add r0, r4, #0 + mov r1, #0x2 + bl GetSetPokedexFlag + add r0, r4, #0 + mov r1, #0x3 + bl GetSetPokedexFlag + mov r0, #0x5 + bl PlaySE + b ._400 +._389: + .align 2, 0 +._388: + .word gUnknown_Debug_2038A1C +._386: + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._390 @cond_branch + mov r0, #0x2 + bl debug_80C627C + b ._400 +._390: + mov r0, #0x80 + and r0, r0, r1 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + cmp r3, #0 + beq ._392 @cond_branch + mov r0, #0x1 + bl debug_80C627C + b ._400 +._392: + mov r0, #0x80 + lsl r0, r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._395 @cond_branch + ldr r2, ._397 @ gUnknown_Debug_2038A1C + ldr r0, [r2] + mov r6, #0xb4 + lsl r6, r6, #0x1 + add r1, r0, r6 + ldrb r0, [r1] + cmp r0, #0 + beq ._395 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1] + ldr r0, [r2] + ldr r1, ._397 + 4 @ 0x169 + add r0, r0, r1 + strb r3, [r0] + b ._396 +._398: + .align 2, 0 +._397: + .word gUnknown_Debug_2038A1C + .word 0x169 +._395: + ldrh r1, [r4, #0x2e] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._400 @cond_branch + ldr r3, ._401 @ gUnknown_Debug_2038A1C + ldr r0, [r3] + mov r4, #0xb4 + lsl r4, r4, #0x1 + add r2, r0, r4 + ldrb r0, [r2] + cmp r0, #0x4 + bhi ._400 @cond_branch + add r0, r0, #0x1 + mov r1, #0x0 + strb r0, [r2] + ldr r0, [r3] + ldr r6, ._401 + 4 @ 0x169 + add r0, r0, r6 + strb r1, [r0] +._396: + ldr r1, ._401 + 8 @ gTasks + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._401 + 12 @ debug_80C53C0 +._375: + str r1, [r0] +._400: + add sp, sp, #0x4 + pop {r4, r5, r6} + pop {r0} + bx r0 +._402: + .align 2, 0 +._401: + .word gUnknown_Debug_2038A1C + .word 0x169 + .word gTasks + .word debug_80C53C0+1 + + thumb_func_end debug_80C53F0 + + thumb_func_start debug_80C55E4 +debug_80C55E4: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + add r6, r3, #0 + ldr r1, ._405 @ gUnknown_Debug_083F8698 + ldr r2, ._405 + 4 @ gUnknown_Debug_2038A1C + ldr r0, [r2] + mov ip, r0 + mov r0, #0xb4 + lsl r0, r0, #0x1 + add r0, r0, ip + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._405 + 8 @ 0x169 + add r1, r1, ip + ldrb r1, [r1] + ldr r0, [r0] + add r0, r0, r1 + ldrb r5, [r0] + add r7, r5, #0 + ldr r1, ._405 + 12 @ gMain + ldrh r4, [r1, #0x2e] + mov r0, #0x1 + and r0, r0, r4 + mov r8, r2 + add r2, r1, #0 + cmp r0, #0 + beq ._403 @cond_branch + ldr r0, ._405 + 16 @ gTasks + lsl r1, r3, #0x2 + add r1, r1, r3 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._405 + 20 @ debug_80C53C0 + str r0, [r1] + b ._422 +._406: + .align 2, 0 +._405: + .word gUnknown_Debug_083F8698 + .word gUnknown_Debug_2038A1C + .word 0x169 + .word gMain + .word gTasks + .word debug_80C53C0+1 +._403: + mov r0, #0x2 + and r0, r0, r4 + cmp r0, #0 + beq ._407 @cond_branch + lsl r1, r5, #0x2 + mov r0, ip + add r0, r0, #0x64 + add r0, r0, r1 + mov r1, #0xb2 + lsl r1, r1, #0x1 + add r1, r1, ip + ldr r1, [r1] + str r1, [r0] + ldr r1, ._409 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._409 + 4 @ debug_80C53C0 + str r1, [r0] + b ._422 +._410: + .align 2, 0 +._409: + .word gTasks + .word debug_80C53C0+1 +._407: + ldrh r1, [r2, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._411 @cond_branch + mov r0, #0x1 + b ._412 +._411: + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._413 @cond_branch + mov r0, #0x2 +._412: + bl debug_80C6544 + bl debug_80C643C + b ._422 +._413: + ldr r0, ._419 @ gUnknown_Debug_083F8554 + lsl r1, r7, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r1, [r1] + ldrb r0, [r1, #0x9] + cmp r0, #0xff + beq ._422 @cond_branch + mov r0, #0x20 + and r0, r0, r4 + cmp r0, #0 + beq ._417 @cond_branch + mov r0, #0xb5 + lsl r0, r0, #0x1 + add ip, ip, r0 + mov r0, ip + ldrb r3, [r0] + ldrb r0, [r1, #0x9] + sub r0, r0, #0x1 + cmp r3, r0 + bge ._417 @cond_branch + add r0, r3, #1 + mov r1, ip + strb r0, [r1] + bl debug_80C643C + b ._422 +._420: + .align 2, 0 +._419: + .word gUnknown_Debug_083F8554 +._417: + ldrh r1, [r2, #0x2e] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._422 @cond_branch + mov r2, r8 + ldr r0, [r2] + mov r2, #0xb5 + lsl r2, r2, #0x1 + add r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0 + beq ._422 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1] + bl debug_80C643C +._422: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_end debug_80C55E4 + + thumb_func_start debug_80C5708 +debug_80C5708: + push {lr} + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + ldr r0, ._424 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._423 @cond_branch + ldr r0, ._424 + 4 @ gTasks + lsl r1, r2, #0x2 + add r1, r1, r2 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._424 + 8 @ debug_80C53C0 + str r0, [r1] +._423: + pop {r0} + bx r0 +._425: + .align 2, 0 +._424: + .word gMain + .word gTasks + .word debug_80C53C0+1 + + thumb_func_end debug_80C5708 + + thumb_func_start debug_80C5738 +debug_80C5738: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + add r6, r0, #0 + lsl r1, r1, #0x18 + lsr r4, r1, #0x18 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + mov r8, r2 + cmp r4, #0xfe + bne ._426 @cond_branch + ldr r1, ._428 @ gUnknown_Debug_083F850A + mov r2, #0x7 + bl debug_80C689C + add r0, r6, #7 + ldr r7, ._428 + 4 @ gUnknown_Debug_2038A1C + ldr r1, [r7] + add r1, r1, #0xf0 + ldr r1, [r1] + mov r2, #0x3 + mov r3, #0x1 + bl debug_80C6678 + mov r4, #0x0 + strb r4, [r6, #0x13] + strb r4, [r6, #0x14] + add r0, r6, #0 + add r0, r0, #0x15 + ldr r1, ._428 + 8 @ gUnknown_Debug_083F8514 + mov r2, #0x7 + bl debug_80C689C + add r0, r6, #0 + add r0, r0, #0x1c + ldr r1, [r7] + add r1, r1, #0xf4 + ldr r1, [r1] + mov r2, #0x3 + mov r3, #0x1 + bl debug_80C6678 + add r0, r6, #0 + add r0, r0, #0x28 + strb r4, [r0] + add r0, r0, #0x1 + strb r4, [r0] + add r0, r0, #0x1 + ldr r1, ._428 + 12 @ gUnknown_Debug_083F851C + mov r2, #0x9 + bl debug_80C689C + add r0, r6, #0 + add r0, r0, #0x31 + ldr r1, [r7] + add r1, r1, #0xf8 +._431: + ldr r1, [r1] + mov r2, #0x3 + mov r3, #0x1 + bl debug_80C6678 + b ._517 +._429: + .align 2, 0 +._428: + .word gUnknown_Debug_083F850A + .word gUnknown_Debug_2038A1C + .word gUnknown_Debug_083F8514 + .word gUnknown_Debug_083F851C +._426: + cmp r4, #0xfd + bne ._430 @cond_branch + ldr r1, ._432 @ gUnknown_Debug_083F8524 + add r0, r6, #0 + mov r2, #0x9 + bl debug_80C689C + add r0, r6, #0 + add r0, r0, #0x9 + ldr r7, ._432 + 4 @ gUnknown_Debug_2038A1C + ldr r1, [r7] + add r1, r1, #0xfc + ldr r1, [r1] + mov r2, #0x3 + mov r3, #0x1 + bl debug_80C6678 + mov r4, #0x0 + strb r4, [r6, #0x15] + strb r4, [r6, #0x16] + add r0, r6, #0 + add r0, r0, #0x17 + ldr r1, ._432 + 8 @ gUnknown_Debug_083F852D + mov r2, #0x9 + bl debug_80C689C + add r0, r6, #0 + add r0, r0, #0x20 + ldr r1, [r7] + mov r2, #0x80 + lsl r2, r2, #0x1 + add r1, r1, r2 + ldr r1, [r1] + mov r2, #0x3 + mov r3, #0x1 + bl debug_80C6678 + add r0, r6, #0 + add r0, r0, #0x2c + strb r4, [r0] + add r0, r0, #0x1 + strb r4, [r0] + add r0, r0, #0x1 + ldr r1, ._432 + 12 @ gUnknown_Debug_083F8537 + mov r2, #0x9 + bl debug_80C689C + add r0, r6, #0 + add r0, r0, #0x37 + ldr r1, [r7] + mov r3, #0x82 + lsl r3, r3, #0x1 + add r1, r1, r3 + b ._431 +._433: + .align 2, 0 +._432: + .word gUnknown_Debug_083F8524 + .word gUnknown_Debug_2038A1C + .word gUnknown_Debug_083F852D + .word gUnknown_Debug_083F8537 +._430: + mov r1, #0x0 + lsl r5, r4, #0x3 + mov r2, #0x0 +._434: + add r0, r6, r1 + strb r2, [r0] + add r0, r1, #1 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + cmp r1, #0xb + bls ._434 @cond_branch + ldr r0, ._437 @ gUnknown_Debug_083F8554 + add r0, r5, r0 + ldr r1, [r0] + add r0, r6, #0 + mov r2, #0xb + bl debug_80C689C + mov r1, #0xc + mov r2, #0xff +._435: + add r0, r6, r1 + strb r2, [r0] + add r0, r1, #1 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + cmp r1, #0xff + bls ._435 @cond_branch + ldr r0, ._437 @ gUnknown_Debug_083F8554 + add r0, r0, #0x4 + add r0, r5, r0 + ldr r0, [r0] + ldrb r2, [r0, #0x9] + lsl r0, r2, #0x1a + lsr r5, r0, #0x18 + cmp r4, #0x22 + bhi ._436 @cond_branch + lsl r0, r4, #0x2 + ldr r1, ._437 + 4 @ + add r1, r0, r1 + ldr r1, [r1] + add r7, r0, #0 + mov pc, r1 +._438: + .align 2, 0 +._437: + .word gUnknown_Debug_083F8554 + .word ._439 +._439: + .word ._440 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._445 + .word ._446 + .word ._450 + .word ._450 + .word ._450 + .word ._450 + .word ._451 + .word ._452 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._473 + .word ._474 +._436: + mov r0, #0xff + strb r0, [r6] + b ._517 +._440: + add r0, r6, #0 + add r0, r0, #0xa + ldr r1, ._477 @ gUnknown_Debug_2038A1C + mov r9, r1 + ldr r1, [r1] + add r1, r1, #0x64 + add r1, r1, r7 + ldr r1, [r1] + mov r3, r8 + bl debug_80C6678 + add r1, r5, r6 + mov r0, #0x0 + strb r0, [r1, #0xa] + mov r0, #0xfc + strb r0, [r1, #0xb] + mov r0, #0x1 + strb r0, [r1, #0xc] + mov r2, r8 + strb r2, [r1, #0xd] + add r4, r5, #0 + add r4, r4, #0xe + add r4, r6, r4 + mov r3, r9 + ldr r0, [r3] + add r0, r0, #0x64 + add r0, r0, r7 + ldrh r0, [r0] + bl NationalPokedexNumToSpecies + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0xb + mul r1, r1, r0 + ldr r0, ._477 + 4 @ gSpeciesNames + add r1, r1, r0 + add r0, r4, #0 + mov r2, #0xa + bl debug_80C689C + b ._517 +._478: + .align 2, 0 +._477: + .word gUnknown_Debug_2038A1C + .word gSpeciesNames +._445: + ldr r0, ._483 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + add r0, r0, #0x64 + add r0, r0, r7 + ldr r0, [r0] + cmp r0, #0x1 + beq ._479 @cond_branch + cmp r0, #0x1 + bcc ._480 @cond_branch + cmp r0, #0x2 + beq ._481 @cond_branch + b ._517 +._484: + .align 2, 0 +._483: + .word gUnknown_Debug_2038A1C +._480: + add r0, r6, #0 + add r0, r0, #0xa + ldr r1, ._486 @ gUnknown_Debug_083F8546 + b ._488 +._487: + .align 2, 0 +._486: + .word gUnknown_Debug_083F8546 +._479: + add r0, r6, #0 + add r0, r0, #0xa + ldr r1, ._489 @ gUnknown_Debug_083F8541 + b ._488 +._490: + .align 2, 0 +._489: + .word gUnknown_Debug_083F8541 +._481: + add r0, r6, #0 + add r0, r0, #0xa + ldr r1, ._492 @ gUnknown_Debug_083F8544 +._488: + mov r2, #0x2 + bl debug_80C689C + b ._517 +._493: + .align 2, 0 +._492: + .word gUnknown_Debug_083F8544 +._450: + add r0, r6, #0 + add r0, r0, #0xa + ldr r4, ._495 @ gUnknown_Debug_2038A1C + ldr r1, [r4] + add r1, r1, #0x64 + add r1, r1, r7 + ldr r1, [r1] + mov r3, r8 + bl debug_80C6678 + add r1, r5, r6 + mov r0, #0x0 + strb r0, [r1, #0xa] + mov r0, #0xfc + strb r0, [r1, #0xb] + mov r0, #0x1 + strb r0, [r1, #0xc] + mov r0, r8 + strb r0, [r1, #0xd] + add r0, r5, #0 + add r0, r0, #0xe + add r0, r6, r0 + ldr r1, [r4] + add r1, r1, #0x64 + add r1, r1, r7 + ldr r2, [r1] + mov r1, #0xd + mul r1, r1, r2 + ldr r2, ._495 + 4 @ gMoveNames + add r1, r1, r2 + b ._494 +._496: + .align 2, 0 +._495: + .word gUnknown_Debug_2038A1C + .word gMoveNames +._451: + add r0, r6, #0 + add r0, r0, #0xa + ldr r4, ._499 @ gUnknown_Debug_2038A1C + ldr r1, [r4] + add r1, r1, #0x64 + add r1, r1, r7 + ldr r1, [r1] + mov r3, r8 + bl debug_80C6678 + add r1, r5, r6 + mov r0, #0x0 + strb r0, [r1, #0xa] + mov r0, #0xfc + strb r0, [r1, #0xb] + mov r0, #0x1 + strb r0, [r1, #0xc] + mov r2, r8 + strb r2, [r1, #0xd] + ldr r0, [r4] + add r0, r0, #0x64 + add r0, r0, r7 + ldr r0, [r0] + cmp r0, #0 + beq ._497 @cond_branch + add r4, r5, #0 + add r4, r4, #0xe + add r4, r6, r4 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl ItemId_GetName + add r1, r0, #0 + add r0, r4, #0 + b ._498 +._500: + .align 2, 0 +._499: + .word gUnknown_Debug_2038A1C +._497: + add r0, r5, #0 + add r0, r0, #0xe + add r0, r6, r0 + ldr r1, ._502 @ gUnknown_Debug_083F8541 +._498: + mov r2, #0x9 + bl debug_80C689C + b ._517 +._503: + .align 2, 0 +._502: + .word gUnknown_Debug_083F8541 +._452: + add r6, r6, #0xc + ldr r4, ._505 @ gUnknown_Debug_2038A1C + ldr r0, [r4] + ldr r0, [r0, #0x64] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl NationalPokedexNumToSpecies + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + ldr r1, [r4] + add r1, r1, #0x64 + add r1, r1, r7 + ldrb r1, [r1] + bl GetAbilityBySpecies + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0xd + mul r1, r1, r0 + ldr r0, ._505 + 4 @ gAbilityNames + add r1, r1, r0 + add r0, r6, #0 +._494: + mov r2, #0xc + bl debug_80C689C + b ._517 +._506: + .align 2, 0 +._505: + .word gUnknown_Debug_2038A1C + .word gAbilityNames +._474: + add r0, r6, #0 + add r0, r0, #0xa + ldr r2, ._508 @ gUnknown_Debug_083F86E8 + ldr r1, ._508 + 4 @ gUnknown_Debug_2038A1C + ldr r1, [r1] + add r1, r1, #0x64 + add r1, r1, r7 + ldr r1, [r1] + lsl r1, r1, #0x3 + add r1, r1, r2 + ldr r1, [r1] + b ._514 +._509: + .align 2, 0 +._508: + .word gUnknown_Debug_083F86E8 + .word gUnknown_Debug_2038A1C +._472: + add r0, r6, #0 + add r0, r0, #0xc + ldr r1, ._511 @ gUnknown_Debug_2038A1C + ldr r1, [r1] + add r1, r1, #0x64 + add r1, r1, r7 + ldr r1, [r1] + mov r3, r8 + bl debug_80C6678 + b ._517 +._512: + .align 2, 0 +._511: + .word gUnknown_Debug_2038A1C +._473: + ldr r0, ._515 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + add r0, r0, #0x64 + add r0, r0, r7 + ldr r0, [r0] + cmp r0, #0 + beq ._513 @cond_branch + add r0, r6, #0 + add r0, r0, #0xa + ldr r1, ._515 + 4 @ gUnknown_Debug_083F854A + b ._514 +._516: + .align 2, 0 +._515: + .word gUnknown_Debug_2038A1C + .word gUnknown_Debug_083F854A +._513: + add r0, r6, #0 + add r0, r0, #0xa + ldr r1, ._518 @ gUnknown_Debug_083F854D +._514: + mov r2, #0x4 + bl debug_80C689C + b ._517 +._519: + .align 2, 0 +._518: + .word gUnknown_Debug_083F854D +._446: + add r0, r6, #0 + add r0, r0, #0xa + ldr r2, ._520 @ gNatureNames + ldr r1, ._520 + 4 @ gUnknown_Debug_2038A1C + ldr r1, [r1] + add r1, r1, #0x64 + add r1, r1, r7 + ldr r1, [r1] + lsl r1, r1, #0x2 + add r1, r1, r2 + ldr r1, [r1] + mov r2, #0x5 + bl debug_80C689C +._517: + mov r0, #0x0 + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._521: + .align 2, 0 +._520: + .word gNatureNames + .word gUnknown_Debug_2038A1C + + thumb_func_end debug_80C5738 + + thumb_func_start debug_80C5B60 +debug_80C5B60: + lsl r0, r0, #0x18 + ldr r1, ._522 @ gUnknown_Debug_2038A1C + ldr r1, [r1] + lsr r0, r0, #0x16 + add r1, r1, #0x64 + add r1, r1, r0 + ldr r0, [r1] + bx lr +._523: + .align 2, 0 +._522: + .word gUnknown_Debug_2038A1C + + thumb_func_end debug_80C5B60 + + thumb_func_start debug_80C5B74 +debug_80C5B74: + push {r4, r5, r6, lr} + add r6, r0, #0 + lsl r1, r1, #0x18 + lsr r2, r1, #0x18 + cmp r2, #0x18 + bhi ._540 @cond_branch + lsl r0, r2, #0x2 + ldr r1, ._526 @ + add r1, r0, r1 + ldr r1, [r1] + add r3, r0, #0 + mov pc, r1 +._527: + .align 2, 0 +._526: + .word ._525 +._525: + .word ._532 + .word ._529 + .word ._530 + .word ._532 + .word ._532 + .word ._540 + .word ._540 + .word ._540 + .word ._540 + .word ._540 + .word ._540 + .word ._540 + .word ._540 + .word ._552 + .word ._552 + .word ._552 + .word ._552 + .word ._552 + .word ._552 + .word ._552 + .word ._552 + .word ._552 + .word ._552 + .word ._552 + .word ._552 +._540: + ldr r0, ._554 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + lsl r1, r2, #0x2 + add r0, r0, #0x64 + add r0, r0, r1 + str r6, [r0] + b ._562 +._555: + .align 2, 0 +._554: + .word gUnknown_Debug_2038A1C +._532: + ldr r0, ._557 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + add r0, r0, #0x64 + add r0, r0, r3 + str r6, [r0] + bl debug_80C5C94 + b ._562 +._558: + .align 2, 0 +._557: + .word gUnknown_Debug_2038A1C +._529: + ldr r4, ._560 @ gUnknown_Debug_2038A1C + ldr r1, [r4] + add r0, r1, #0 + add r0, r0, #0x64 + add r0, r0, r3 + str r6, [r0] + ldr r0, [r1, #0x64] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl NationalPokedexNumToSpecies + ldr r5, [r4] + ldr r4, ._560 + 4 @ gExperienceTables + lsl r2, r6, #0x2 + ldr r3, ._560 + 8 @ gBaseStats + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r1, r0, #0x3 + sub r1, r1, r0 + lsl r1, r1, #0x2 + add r1, r1, r3 + ldrb r1, [r1, #0x13] + mov r0, #0xca + lsl r0, r0, #0x1 + mul r0, r0, r1 + add r2, r2, r0 + add r2, r2, r4 + ldr r0, [r2] + str r0, [r5, #0x6c] + bl debug_80C5C94 + b ._562 +._561: + .align 2, 0 +._560: + .word gUnknown_Debug_2038A1C + .word gExperienceTables + .word gBaseStats +._530: + ldr r0, ._563 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + add r0, r0, #0x64 + add r0, r0, r3 + str r6, [r0] + bl debug_80C5DEC + b ._562 +._564: + .align 2, 0 +._563: + .word gUnknown_Debug_2038A1C +._552: + ldr r0, ._565 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + add r0, r0, #0x64 + add r0, r0, r3 + str r6, [r0] + bl debug_80C5EF4 +._562: + pop {r4, r5, r6} + pop {r0} + bx r0 +._566: + .align 2, 0 +._565: + .word gUnknown_Debug_2038A1C + + thumb_func_end debug_80C5B74 + + thumb_func_start debug_80C5C94 +debug_80C5C94: + push {r4, r5, r6, lr} + add sp, sp, #0xfffffff0 + ldr r6, ._567 @ gUnknown_Debug_2038A1C + ldr r2, [r6] + add r0, r2, #0 + add r0, r0, #0x98 + ldr r4, [r0] + mov r1, #0x1f + and r4, r4, r1 + add r0, r0, #0x8 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0x5 + orr r4, r4, r0 + add r0, r2, #0 + add r0, r0, #0xa8 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0xa + orr r4, r4, r0 + add r0, r2, #0 + add r0, r0, #0xb0 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0xf + orr r4, r4, r0 + add r0, r2, #0 + add r0, r0, #0xb8 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0x14 + orr r4, r4, r0 + add r0, r2, #0 + add r0, r0, #0xc0 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0x19 + orr r4, r4, r0 + ldr r0, [r2, #0x64] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl NationalPokedexNumToSpecies + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + ldr r0, [r6] + ldr r2, [r0, #0x68] + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + mov r5, #0x1 + str r5, [sp] + ldr r3, [r0, #0x74] + str r3, [sp, #0x4] + str r5, [sp, #0x8] + ldr r3, [r0, #0x70] + str r3, [sp, #0xc] + add r3, r4, #0 + bl CreateMon + ldr r0, [r6] + bl GetMonGender + ldr r1, [r6] + add r0, r0, #0x2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [r1, #0x78] + add r0, r1, #0 + bl GetNature + ldr r1, [r6] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [r1, #0x7c] + add r0, r1, #0 + mov r1, #0xd + bl GetMonData + add r2, r0, #0 + ldr r0, [r6] + add r1, r0, #0 + add r1, r1, #0x80 + str r2, [r1] + mov r1, #0xe + bl GetMonData + add r2, r0, #0 + ldr r0, [r6] + add r1, r0, #0 + add r1, r1, #0x84 + str r2, [r1] + mov r1, #0xf + bl GetMonData + add r2, r0, #0 + ldr r0, [r6] + add r1, r0, #0 + add r1, r1, #0x88 + str r2, [r1] + mov r1, #0x10 + bl GetMonData + add r2, r0, #0 + ldr r0, [r6] + add r1, r0, #0 + add r1, r1, #0x8c + str r2, [r1] + mov r1, #0x19 + bl GetMonData + add r1, r0, #0 + ldr r0, [r6] + str r1, [r0, #0x6c] + mov r1, #0x3a + bl GetMonData + add r2, r0, #0 + ldr r0, [r6] + add r1, r0, #0 + add r1, r1, #0xf0 + str r2, [r1] + mov r1, #0x3b + bl GetMonData + add r2, r0, #0 + ldr r0, [r6] + add r1, r0, #0 + add r1, r1, #0xf4 + str r2, [r1] + mov r1, #0x3c + bl GetMonData + add r2, r0, #0 + ldr r0, [r6] + add r1, r0, #0 + add r1, r1, #0xf8 + str r2, [r1] + mov r1, #0x3d + bl GetMonData + add r2, r0, #0 + ldr r0, [r6] + add r1, r0, #0 + add r1, r1, #0xfc + str r2, [r1] + mov r1, #0x3e + bl GetMonData + add r2, r0, #0 + ldr r0, [r6] + mov r3, #0x80 + lsl r3, r3, #0x1 + add r1, r0, r3 + str r2, [r1] + mov r1, #0x3f + bl GetMonData + ldr r1, [r6] + mov r2, #0x82 + lsl r2, r2, #0x1 + add r1, r1, r2 + str r0, [r1] + add sp, sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 +._568: + .align 2, 0 +._567: + .word gUnknown_Debug_2038A1C + + thumb_func_end debug_80C5C94 + + thumb_func_start debug_80C5DEC +debug_80C5DEC: + push {r4, lr} + add sp, sp, #0xfffffffc + mov r0, #0x0 + str r0, [sp] + ldr r4, ._569 @ gUnknown_Debug_2038A1C + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0x6c + mov r1, #0x19 + bl SetMonData + ldr r0, [r4] + mov r1, #0xd + mov r2, sp + bl SetMonData + ldr r0, [r4] + mov r1, #0xe + mov r2, sp + bl SetMonData + ldr r0, [r4] + mov r1, #0xf + mov r2, sp + bl SetMonData + ldr r0, [r4] + mov r1, #0x10 + mov r2, sp + bl SetMonData + ldr r0, [r4] + bl CalculateMonStats + ldr r0, [r4] + bl GiveMonInitialMoveset + ldr r0, [r4] + mov r1, #0x38 + bl GetMonData + add r1, r0, #0 + ldr r0, [r4] + str r1, [r0, #0x68] + mov r1, #0xd + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0x80 + str r2, [r1] + mov r1, #0xe + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0x84 + str r2, [r1] + mov r1, #0xf + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0x88 + str r2, [r1] + mov r1, #0x10 + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0x8c + str r2, [r1] + mov r1, #0x3a + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0xf0 + str r2, [r1] + mov r1, #0x3b + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0xf4 + str r2, [r1] + mov r1, #0x3c + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0xf8 + str r2, [r1] + mov r1, #0x3d + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0xfc + str r2, [r1] + mov r1, #0x3e + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + mov r3, #0x80 + lsl r3, r3, #0x1 + add r1, r0, r3 + str r2, [r1] + mov r1, #0x3f + bl GetMonData + ldr r1, [r4] + mov r2, #0x82 + lsl r2, r2, #0x1 + add r1, r1, r2 + str r0, [r1] + add sp, sp, #0x4 + pop {r4} + pop {r0} + bx r0 +._570: + .align 2, 0 +._569: + .word gUnknown_Debug_2038A1C + + thumb_func_end debug_80C5DEC + + thumb_func_start debug_80C5EF4 +debug_80C5EF4: + push {r4, lr} + ldr r4, ._571 @ gUnknown_Debug_2038A1C + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0x98 + mov r1, #0x27 + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0x9c + mov r1, #0x1a + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xa0 + mov r1, #0x28 + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xa4 + mov r1, #0x1b + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xa8 + mov r1, #0x29 + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xac + mov r1, #0x1c + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xb0 + mov r1, #0x2a + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xb4 + mov r1, #0x1d + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xb8 + mov r1, #0x2b + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xbc + mov r1, #0x1e + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xc0 + mov r1, #0x2c + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xc4 + mov r1, #0x1f + bl SetMonData + ldr r0, [r4] + bl CalculateMonStats + ldr r0, [r4] + mov r1, #0x3a + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0xf0 + str r2, [r1] + mov r1, #0x3b + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0xf4 + str r2, [r1] + mov r1, #0x3c + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0xf8 + str r2, [r1] + mov r1, #0x3d + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0xfc + str r2, [r1] + mov r1, #0x3e + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + mov r3, #0x80 + lsl r3, r3, #0x1 + add r1, r0, r3 + str r2, [r1] + mov r1, #0x3f + bl GetMonData + ldr r1, [r4] + mov r2, #0x82 + lsl r2, r2, #0x1 + add r1, r1, r2 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 +._572: + .align 2, 0 +._571: + .word gUnknown_Debug_2038A1C + + thumb_func_end debug_80C5EF4 + + thumb_func_start debug_80C5FFC +debug_80C5FFC: + push {r4, r5, r6, r7, lr} + add sp, sp, #0xffffffe0 + ldr r1, ._578 @ gUnknown_Debug_083F8758 + add r0, sp, #0x10 + mov r2, #0x4 + bl memcpy + add r7, sp, #0x14 + ldr r1, ._578 + 4 @ gUnknown_Debug_083F875C + add r0, r7, #0 + mov r2, #0x8 + bl memcpy + ldr r5, ._578 + 8 @ gUnknown_Debug_2038A1C + ldr r2, [r5] + add r0, r2, #0 + add r0, r0, #0x98 + ldr r4, [r0] + mov r1, #0x1f + and r4, r4, r1 + add r0, r0, #0x8 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0x5 + orr r4, r4, r0 + add r0, r2, #0 + add r0, r0, #0xa8 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0xa + orr r4, r4, r0 + add r0, r2, #0 + add r0, r0, #0xb0 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0xf + orr r4, r4, r0 + add r0, r2, #0 + add r0, r0, #0xb8 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0x14 + orr r4, r4, r0 + add r0, r2, #0 + add r0, r0, #0xc0 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0x19 + orr r4, r4, r0 + ldr r0, [r2, #0x64] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl NationalPokedexNumToSpecies + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + ldr r0, [r5] + ldr r2, [r0, #0x68] + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + mov r6, #0x1 + str r6, [sp] + ldr r3, [r0, #0x74] + str r3, [sp, #0x4] + str r6, [sp, #0x8] + ldr r3, [r0, #0x70] + str r3, [sp, #0xc] + add r3, r4, #0 + bl CreateMon + ldr r2, [r5] + add r0, r2, #0 + add r0, r0, #0x80 + ldr r0, [r0] + cmp r0, #0 + beq ._573 @cond_branch + lsl r1, r0, #0x10 + lsr r1, r1, #0x10 + add r0, r2, #0 + mov r2, #0x0 + bl SetMonMoveSlot +._573: + ldr r2, [r5] + add r0, r2, #0 + add r0, r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + beq ._574 @cond_branch + lsl r1, r0, #0x10 + lsr r1, r1, #0x10 + add r0, r2, #0 + mov r2, #0x1 + bl SetMonMoveSlot +._574: + ldr r2, [r5] + add r0, r2, #0 + add r0, r0, #0x88 + ldr r0, [r0] + cmp r0, #0 + beq ._575 @cond_branch + lsl r1, r0, #0x10 + lsr r1, r1, #0x10 + add r0, r2, #0 + mov r2, #0x2 + bl SetMonMoveSlot +._575: + ldr r2, [r5] + add r0, r2, #0 + add r0, r0, #0x8c + ldr r0, [r0] + cmp r0, #0 + beq ._576 @cond_branch + lsl r1, r0, #0x10 + lsr r1, r1, #0x10 + add r0, r2, #0 + mov r2, #0x3 + bl SetMonMoveSlot +._576: + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0x6c + mov r1, #0x19 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0x98 + mov r1, #0x27 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0x9c + mov r1, #0x1a + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xa0 + mov r1, #0x28 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xa4 + mov r1, #0x1b + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xa8 + mov r1, #0x29 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xac + mov r1, #0x1c + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xb0 + mov r1, #0x2a + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xb4 + mov r1, #0x1d + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xb8 + mov r1, #0x2b + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xbc + mov r1, #0x1e + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xc0 + mov r1, #0x2c + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xc4 + mov r1, #0x1f + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xc8 + mov r1, #0x16 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xcc + mov r1, #0x17 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xd0 + mov r1, #0x18 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xd4 + mov r1, #0x21 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xd8 + mov r1, #0x2f + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xdc + mov r1, #0x30 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xe0 + mov r1, #0x20 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xe4 + mov r1, #0x22 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0x90 + mov r1, #0xc + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0x94 + mov r1, #0x2e + bl SetMonData + ldr r0, [r5] + add r1, r0, #0 + add r1, r1, #0xec + ldr r2, [r1] + lsl r2, r2, #0x3 + ldr r1, ._578 + 12 @ gUnknown_Debug_083F86E8 + add r2, r2, r1 + mov r1, #0x37 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xe8 + mov r1, #0x2d + bl SetMonData + ldr r1, [r5] + add r0, r1, #0 + add r0, r0, #0xe8 + ldr r0, [r0] + cmp r0, #0 + beq ._577 @cond_branch + add r0, r1, #0 + mov r1, #0x2 + add r2, sp, #0x10 + bl SetMonData + add r2, sp, #0x1c + strb r6, [r2] + ldr r0, [r5] + mov r1, #0x3 + bl SetMonData +._577: + ldr r0, [r5] + mov r1, #0x7 + add r2, r7, #0 + bl SetMonData + mov r2, sp + add r2, r2, #0x1e + mov r0, #0xff + strh r0, [r2] + ldr r0, [r5] + mov r1, #0x23 + bl SetMonData + ldr r0, [r5] + bl CalculateMonStats + add sp, sp, #0x20 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._579: + .align 2, 0 +._578: + .word gUnknown_Debug_083F8758 + .word gUnknown_Debug_083F875C + .word gUnknown_Debug_2038A1C + .word gUnknown_Debug_083F86E8+0x4 + + thumb_func_end debug_80C5FFC + + thumb_func_start debug_80C627C +debug_80C627C: + push {r4, r5, r6, lr} + add sp, sp, #0xfffffff8 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + add r6, r4, #0 + ldr r1, ._584 @ gUnknown_Debug_083F7FD4 + mov r0, sp + mov r2, #0x2 + bl memcpy + add r5, sp, #0x4 + ldr r1, ._584 + 4 @ gUnknown_Debug_083F8764 + add r0, r5, #0 + mov r2, #0x2 + bl memcpy + cmp r4, #0x1 + beq ._580 @cond_branch + cmp r4, #0x1 + bgt ._581 @cond_branch + cmp r4, #0 + beq ._582 @cond_branch + b ._595 +._585: + .align 2, 0 +._584: + .word gUnknown_Debug_083F7FD4 + .word gUnknown_Debug_083F8764 +._581: + cmp r6, #0x2 + beq ._586 @cond_branch + b ._595 +._582: + ldr r0, ._589 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + ldr r1, ._589 + 4 @ 0x169 + add r0, r0, r1 + b ._588 +._590: + .align 2, 0 +._589: + .word gUnknown_Debug_2038A1C + .word 0x169 +._580: + ldr r4, ._593 @ gUnknown_Debug_2038A1C + ldr r3, [r4] + ldr r1, ._593 + 4 @ 0x169 + add r0, r3, r1 + ldrb r2, [r0] + ldr r1, ._593 + 8 @ gUnknown_Debug_083F8698 + mov r6, #0xb4 + lsl r6, r6, #0x1 + add r0, r3, r6 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r0, r0, r1 + ldrb r0, [r0, #0x4] + sub r0, r0, #0x1 + cmp r2, r0 + bge ._595 @cond_branch + lsl r2, r2, #0x19 + mov r0, #0xa0 + lsl r0, r0, #0x13 + add r2, r2, r0 + lsr r2, r2, #0x18 + add r0, r5, #0 + mov r1, #0x1 + bl Menu_PrintText + ldr r0, [r4] + ldr r2, ._593 + 4 @ 0x169 + add r1, r0, r2 + ldrb r0, [r1] + add r0, r0, #0x1 + strb r0, [r1] + ldr r0, [r4] + add r0, r0, r2 +._588: + ldrb r2, [r0] + lsl r2, r2, #0x19 + mov r6, #0xa0 + lsl r6, r6, #0x13 + add r2, r2, r6 + lsr r2, r2, #0x18 + mov r0, sp + mov r1, #0x1 + bl Menu_PrintText + b ._595 +._594: + .align 2, 0 +._593: + .word gUnknown_Debug_2038A1C + .word 0x169 + .word gUnknown_Debug_083F8698 +._586: + ldr r4, ._596 @ gUnknown_Debug_2038A1C + ldr r0, [r4] + ldr r2, ._596 + 4 @ 0x169 + add r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0 + beq ._595 @cond_branch + add r2, r0, #0 + lsl r2, r2, #0x19 + mov r6, #0xa0 + lsl r6, r6, #0x13 + add r2, r2, r6 + lsr r2, r2, #0x18 + add r0, r5, #0 + mov r1, #0x1 + bl Menu_PrintText + ldr r0, [r4] + ldr r2, ._596 + 4 @ 0x169 + add r1, r0, r2 + ldrb r0, [r1] + sub r0, r0, #0x1 + strb r0, [r1] + ldr r0, [r4] + add r0, r0, r2 + ldrb r2, [r0] + lsl r2, r2, #0x19 + add r2, r2, r6 + lsr r2, r2, #0x18 + mov r0, sp + mov r1, #0x1 + bl Menu_PrintText +._595: + add sp, sp, #0x8 + pop {r4, r5, r6} + pop {r0} + bx r0 +._597: + .align 2, 0 +._596: + .word gUnknown_Debug_2038A1C + .word 0x169 + + thumb_func_end debug_80C627C + + thumb_func_start debug_80C6384 +debug_80C6384: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + mov r0, #0x0 + mov r1, #0x4 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + mov r5, #0x0 + ldr r3, ._600 @ gUnknown_Debug_083F8698 + ldr r1, ._600 + 4 @ gUnknown_Debug_2038A1C + ldr r0, [r1] + mov r2, #0xb4 + lsl r2, r2, #0x1 + add r0, r0, r2 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r0, r0, r3 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0xff + beq ._598 @cond_branch + add r4, r1, #0 + ldr r0, ._600 + 8 @ 0x16b + mov r9, r0 + mov r8, r3 + add r7, r2, #0 + mov r6, #0x1 +._599: + ldr r0, [r4] + add r0, r0, r9 + mov r1, #0xfc + strb r1, [r0] + ldr r0, [r4] + add r1, r1, #0x70 + add r0, r0, r1 + strb r6, [r0] + ldr r0, [r4] + ldr r2, ._600 + 12 @ 0x16d + add r0, r0, r2 + strb r6, [r0] + ldr r1, [r4] + add r2, r2, #0x1 + add r0, r1, r2 + add r1, r1, r7 + ldrb r1, [r1] + lsl r1, r1, #0x3 + add r1, r1, r8 + ldr r1, [r1] + add r1, r1, r5 + ldrb r1, [r1] + mov r2, #0x1 + bl debug_80C5738 + ldr r0, [r4] + add r0, r0, r9 + lsl r2, r5, #0x19 + mov r1, #0xa0 + lsl r1, r1, #0x13 + add r2, r2, r1 + lsr r2, r2, #0x18 + mov r1, #0x2 + bl Menu_PrintText + add r0, r5, #1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + ldr r0, [r4] + add r0, r0, r7 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r0, r0, r8 + ldr r0, [r0] + add r0, r0, r5 + ldrb r0, [r0] + cmp r0, #0xff + bne ._599 @cond_branch +._598: + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._601: + .align 2, 0 +._600: + .word gUnknown_Debug_083F8698 + .word gUnknown_Debug_2038A1C + .word 0x16b + .word 0x16d + + thumb_func_end debug_80C6384 + + thumb_func_start debug_80C643C +debug_80C643C: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r0, #0x2 + mov r1, #0x5 + mov r2, #0x1c + mov r3, #0x12 + bl Menu_BlankWindowRect + mov r5, #0x0 + ldr r6, ._605 @ gUnknown_Debug_083F8698 + ldr r1, ._605 + 4 @ gUnknown_Debug_2038A1C + ldr r0, [r1] + mov r3, #0xb4 + lsl r3, r3, #0x1 + add r0, r0, r3 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r0, r0, r6 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0xff + beq ._602 @cond_branch + add r4, r1, #0 + mov r0, #0x1 + mov r8, r0 +._607: + ldr r0, [r4] + ldr r7, ._605 + 8 @ 0x16b + add r2, r0, r7 + mov r0, #0xfc + strb r0, [r2] + ldr r0, [r4] + mov r2, #0xb6 + lsl r2, r2, #0x1 + add r0, r0, r2 + mov r7, r8 + strb r7, [r0] + ldr r2, [r4] + ldr r7, ._605 + 12 @ 0x169 + add r0, r2, r7 + ldrb r0, [r0] + cmp r5, r0 + bne ._603 @cond_branch + ldr r0, ._605 + 16 @ 0x16d + add r2, r2, r0 + mov r0, #0x2 + strb r0, [r2] + ldr r1, [r1] + mov r2, #0xb7 + lsl r2, r2, #0x1 + add r0, r1, r2 + add r1, r1, r3 + ldrb r1, [r1] + lsl r1, r1, #0x3 + add r1, r1, r6 + ldr r1, [r1] + add r1, r1, r5 + ldrb r1, [r1] + mov r2, #0x2 + bl debug_80C5738 + b ._604 +._606: + .align 2, 0 +._605: + .word gUnknown_Debug_083F8698 + .word gUnknown_Debug_2038A1C + .word 0x16b + .word 0x169 + .word 0x16d +._603: + ldr r3, ._608 @ 0x16d + add r0, r2, r3 + mov r7, r8 + strb r7, [r0] + ldr r1, [r1] + mov r2, #0xb7 + lsl r2, r2, #0x1 + add r0, r1, r2 + ldr r2, ._608 + 4 @ gUnknown_Debug_083F8698 + sub r3, r3, #0x5 + add r1, r1, r3 + ldrb r1, [r1] + lsl r1, r1, #0x3 + add r1, r1, r2 + ldr r1, [r1] + add r1, r1, r5 + ldrb r1, [r1] + mov r2, #0x1 + bl debug_80C5738 +._604: + ldr r0, [r4] + ldr r7, ._608 + 8 @ 0x16b + add r0, r0, r7 + lsl r2, r5, #0x19 + mov r1, #0xa0 + lsl r1, r1, #0x13 + add r2, r2, r1 + lsr r2, r2, #0x18 + mov r1, #0x2 + bl Menu_PrintText + add r0, r5, #1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + ldr r6, ._608 + 4 @ gUnknown_Debug_083F8698 + add r1, r4, #0 + ldr r0, [r4] + mov r3, #0xb4 + lsl r3, r3, #0x1 + add r0, r0, r3 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r0, r0, r6 + ldr r0, [r0] + add r0, r0, r5 + ldrb r0, [r0] + cmp r0, #0xff + bne ._607 @cond_branch +._602: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._609: + .align 2, 0 +._608: + .word 0x16d + .word gUnknown_Debug_083F8698 + .word 0x16b + + thumb_func_end debug_80C643C + + thumb_func_start debug_80C6544 +debug_80C6544: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r9, r0 + ldr r0, ._614 @ gUnknown_Debug_083F8698 + mov r8, r0 + ldr r6, ._614 + 4 @ gUnknown_Debug_2038A1C + ldr r1, [r6] + mov r5, #0xb4 + lsl r5, r5, #0x1 + add r0, r1, r5 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r0, r0, r8 + ldr r4, ._614 + 8 @ 0x169 + add r1, r1, r4 + ldrb r1, [r1] + ldr r0, [r0] + add r0, r0, r1 + ldrb r0, [r0] + bl debug_80C5B60 + add r7, r0, #0 + ldr r2, ._614 + 12 @ gUnknown_Debug_083F8554 + ldr r3, [r6] + add r5, r3, r5 + ldrb r0, [r5] + lsl r0, r0, #0x3 + add r0, r0, r8 + add r4, r3, r4 + ldrb r1, [r4] + ldr r0, [r0] + add r0, r0, r1 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r2, r2, #0x4 + add r0, r0, r2 + ldr r1, [r0] + ldr r5, [r1] + ldr r4, [r1, #0x4] + ldr r2, ._614 + 16 @ gUnknown_Debug_083F8768 + mov r6, #0xb5 + lsl r6, r6, #0x1 + add r0, r3, r6 + ldrb r0, [r0] + lsl r0, r0, #0x2 + add r0, r0, r2 + ldr r3, [r0] + ldrb r0, [r1, #0x8] + cmp r0, #0 + bne ._623 @cond_branch + mov r0, r9 + cmp r0, #0x1 + beq ._611 @cond_branch + cmp r0, #0x2 + beq ._612 @cond_branch + b ._623 +._615: + .align 2, 0 +._614: + .word gUnknown_Debug_083F8698 + .word gUnknown_Debug_2038A1C + .word 0x169 + .word gUnknown_Debug_083F8554 + .word gUnknown_Debug_083F8768 +._611: + sub r0, r4, r3 + cmp r7, r0 + bcs ._616 @cond_branch + add r7, r7, r3 + b ._623 +._616: + cmp r7, r4 + bcc ._622 @cond_branch + b ._619 +._612: + add r0, r5, r3 + cmp r7, r0 + bls ._620 @cond_branch + sub r7, r7, r3 + b ._623 +._620: + cmp r7, r5 + bls ._622 @cond_branch +._619: + add r7, r5, #0 + b ._623 +._622: + add r7, r4, #0 +._623: + ldr r1, ._624 @ gUnknown_Debug_083F8698 + ldr r0, ._624 + 4 @ gUnknown_Debug_2038A1C + ldr r2, [r0] + mov r3, #0xb4 + lsl r3, r3, #0x1 + add r0, r2, r3 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r6, ._624 + 8 @ 0x169 + add r1, r2, r6 + ldrb r1, [r1] + ldr r0, [r0] + add r0, r0, r1 + ldrb r1, [r0] + add r0, r7, #0 + bl debug_80C5B74 + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._625: + .align 2, 0 +._624: + .word gUnknown_Debug_083F8698 + .word gUnknown_Debug_2038A1C + .word 0x169 + + thumb_func_end debug_80C6544 + + thumb_func_start debug_80C6630 +debug_80C6630: + push {r4, r5, lr} + add r4, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + mov r0, #0xfc + strb r0, [r4] + add r4, r4, #0x1 + mov r0, #0x1 + strb r0, [r4] + add r4, r4, #0x1 + cmp r2, #0x2 + bne ._626 @cond_branch + ldr r0, ._629 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + mov r5, #0xb5 + lsl r5, r5, #0x1 + add r0, r0, r5 + ldrb r0, [r0] + cmp r3, r0 + beq ._627 @cond_branch + strb r2, [r4] + b ._628 +._630: + .align 2, 0 +._629: + .word gUnknown_Debug_2038A1C +._627: + mov r0, #0x4 +._626: + strb r0, [r4] +._628: + add r0, r1, #0 + add r0, r0, #0xa1 + strb r0, [r4, #0x1] + pop {r4, r5} + pop {r0} + bx r0 + + thumb_func_end debug_80C6630 + + thumb_func_start debug_80C6678 +debug_80C6678: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + mov r9, r0 + add r6, r1, #0 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + mov r8, r3 + mov r7, #0x0 + sub r0, r2, #1 + cmp r0, #0x9 + bhi ._644 @cond_branch + lsl r0, r0, #0x2 + ldr r1, ._633 @ + add r0, r0, r1 + ldr r0, [r0] + mov pc, r0 +._634: + .align 2, 0 +._633: + .word ._632 +._632: + .word ._635 + .word ._636 + .word ._637 + .word ._638 + .word ._639 + .word ._640 + .word ._641 + .word ._642 + .word ._643 + .word ._644 +._644: + mov r0, r9 + add r4, r0, r7 + ldr r5, ._645 @ 0x3b9aca00 + add r0, r6, #0 + add r1, r5, #0 + bl __udivsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r4, #0 + mov r2, r8 + mov r3, #0x9 + bl debug_80C6630 + add r0, r6, #0 + add r1, r5, #0 + bl __umodsi3 + add r6, r0, #0 + add r0, r7, #4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._643: + mov r1, r9 + add r4, r1, r7 + ldr r5, ._645 + 4 @ 0x5f5e100 + add r0, r6, #0 + add r1, r5, #0 + bl __udivsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r4, #0 + mov r2, r8 + mov r3, #0x8 + bl debug_80C6630 + add r0, r6, #0 + add r1, r5, #0 + bl __umodsi3 + add r6, r0, #0 + add r0, r7, #4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._642: + mov r0, r9 + add r4, r0, r7 + ldr r5, ._645 + 8 @ 0x989680 + add r0, r6, #0 + add r1, r5, #0 + bl __udivsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r4, #0 + mov r2, r8 + mov r3, #0x7 + bl debug_80C6630 + add r0, r6, #0 + add r1, r5, #0 + bl __umodsi3 + add r6, r0, #0 + add r0, r7, #4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._641: + mov r1, r9 + add r4, r1, r7 + ldr r5, ._645 + 12 @ 0xf4240 + add r0, r6, #0 + add r1, r5, #0 + bl __udivsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r4, #0 + mov r2, r8 + mov r3, #0x6 + bl debug_80C6630 + add r0, r6, #0 + add r1, r5, #0 + bl __umodsi3 + add r6, r0, #0 + add r0, r7, #4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._640: + mov r0, r9 + add r4, r0, r7 + ldr r5, ._645 + 16 @ 0x186a0 + add r0, r6, #0 + add r1, r5, #0 + bl __udivsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r4, #0 + mov r2, r8 + mov r3, #0x5 + bl debug_80C6630 + add r0, r6, #0 + add r1, r5, #0 + bl __umodsi3 + add r6, r0, #0 + add r0, r7, #4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._639: + mov r1, r9 + add r4, r1, r7 + ldr r5, ._645 + 20 @ 0x2710 + add r0, r6, #0 + add r1, r5, #0 + bl __udivsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r4, #0 + mov r2, r8 + mov r3, #0x4 + bl debug_80C6630 + add r0, r6, #0 + add r1, r5, #0 + bl __umodsi3 + add r6, r0, #0 + add r0, r7, #4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._638: + mov r0, r9 + add r4, r0, r7 + mov r5, #0xfa + lsl r5, r5, #0x2 + add r0, r6, #0 + add r1, r5, #0 + bl __udivsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r4, #0 + mov r2, r8 + mov r3, #0x3 + bl debug_80C6630 + add r0, r6, #0 + add r1, r5, #0 + bl __umodsi3 + add r6, r0, #0 + add r0, r7, #4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._637: + mov r1, r9 + add r4, r1, r7 + add r0, r6, #0 + mov r1, #0x64 + bl __udivsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r4, #0 + mov r2, r8 + mov r3, #0x2 + bl debug_80C6630 + add r0, r6, #0 + mov r1, #0x64 + bl __umodsi3 + add r6, r0, #0 + add r0, r7, #4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._636: + mov r0, r9 + add r4, r0, r7 + add r0, r6, #0 + mov r1, #0xa + bl __udivsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r4, #0 + mov r2, r8 + mov r3, #0x1 + bl debug_80C6630 + add r0, r6, #0 + mov r1, #0xa + bl __umodsi3 + add r6, r0, #0 + add r0, r7, #4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._635: + mov r1, r9 + add r0, r1, r7 + lsl r1, r6, #0x18 + lsr r1, r1, #0x18 + mov r2, r8 + mov r3, #0x0 + bl debug_80C6630 + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._646: + .align 2, 0 +._645: + .word 0x3b9aca00 + .word 0x5f5e100 + .word 0x989680 + .word 0xf4240 + .word 0x186a0 + .word 0x2710 + + thumb_func_end debug_80C6678 + + thumb_func_start debug_80C689C +debug_80C689C: + push {r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + mov r3, #0x0 + ldrb r0, [r4] + b ._647 +._649: + add r1, r5, r3 + add r0, r4, r3 + ldrb r0, [r0] + strb r0, [r1] + add r0, r3, #1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + add r0, r4, r3 + ldrb r0, [r0] +._647: + cmp r0, #0xff + beq ._648 @cond_branch + cmp r3, r2 + bcc ._649 @cond_branch +._648: + pop {r4, r5} + pop {r0} + bx r0 + + thumb_func_end debug_80C689C + + thumb_func_start debug_80C68CC +debug_80C68CC: + push {r4, r5, r6, r7, lr} + add sp, sp, #0xfffffff8 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + lsl r1, r1, #0x18 + lsr r6, r1, #0x18 + lsl r2, r2, #0x18 + lsr r5, r2, #0x18 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + mov r2, #0x0 + mov r1, #0x0 +._650: + mov r7, sp + add r0, r7, r2 + strb r1, [r0] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x3 + bls ._650 @cond_branch + mov r1, sp + mov r0, #0xff + strb r0, [r1, #0x4] + cmp r3, #0x2 + beq ._651 @cond_branch + cmp r3, #0x2 + bgt ._652 @cond_branch + cmp r3, #0x1 + beq ._653 @cond_branch + b ._654 +._652: + cmp r3, #0x3 + beq ._655 @cond_branch +._654: + mov r1, sp + lsr r0, r4, #0xc + strb r0, [r1] +._655: + mov r1, sp + mov r0, #0xf0 + lsl r0, r0, #0x4 + and r0, r0, r4 + lsr r0, r0, #0x8 + strb r0, [r1, #0x1] +._651: + mov r1, sp + mov r0, #0xf0 + and r0, r0, r4 + lsr r0, r0, #0x4 + strb r0, [r1, #0x2] +._653: + mov r2, sp + mov r1, #0xf + add r0, r4, #0 + and r0, r0, r1 + strb r0, [r2, #0x3] + mov r2, #0x0 +._658: + mov r0, sp + add r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0x9 + bhi ._656 @cond_branch + add r0, r0, #0xa1 + b ._657 +._656: + add r0, r0, #0xb1 +._657: + strb r0, [r1] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x3 + bls ._658 @cond_branch + mov r0, #0x4 + sub r0, r0, r3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + add r0, r0, sp + add r1, r6, #0 + add r2, r5, #0 + bl Menu_PrintText + add sp, sp, #0x8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_end debug_80C68CC + + thumb_func_start InitSeePokemonGraphics +InitSeePokemonGraphics: + push {r4, r5, r6, lr} + add sp, sp, #0xfffffff8 + bl debug_80C35DC + ldr r1, ._659 @ byte_83F88EC + ldr r2, ._659 + 4 @ 0x600e000 + ldr r0, ._659 + 8 @ 0x40000d4 + str r1, [r0] + str r2, [r0, #0x4] + ldr r1, ._659 + 12 @ 0x80000400 + str r1, [r0, #0x8] + ldr r0, [r0, #0x8] + ldr r0, ._659 + 16 @ word_83F888C + mov r1, #0x80 + mov r2, #0x60 + bl LoadPalette + ldr r1, ._659 + 20 @ 0x7fff + add r0, sp, #0x4 + strh r1, [r0] + mov r1, #0x0 + mov r2, #0x2 + bl LoadPalette + mov r0, #0x1 + neg r0, r0 + mov r5, #0x0 + str r5, [sp] + mov r1, #0x0 + mov r2, #0x10 + mov r3, #0x0 + bl BeginNormalPaletteFade + ldr r0, ._659 + 24 @ 0x4000040 + mov r6, #0x0 + strh r5, [r0] + add r0, r0, #0x4 + strh r5, [r0] + sub r0, r0, #0x2 + strh r5, [r0] + add r0, r0, #0x4 + strh r5, [r0] + ldr r1, ._659 + 28 @ 0x4000048 + mov r0, #0x3f + strh r0, [r1] + add r1, r1, #0x2 + mov r0, #0x1f + strh r0, [r1] + add r1, r1, #0x6 + mov r0, #0xf1 + strh r0, [r1] + ldr r0, ._659 + 32 @ 0x4000052 + strh r5, [r0] + add r1, r1, #0x4 + mov r0, #0x7 + strh r0, [r1] + ldr r3, ._659 + 36 @ 0x4000208 + ldrh r2, [r3] + strh r5, [r3] + ldr r4, ._659 + 40 @ 0x4000200 + ldrh r0, [r4] + mov r1, #0x1 + orr r0, r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r0, ._659 + 44 @ debug_80C3758 + bl SetVBlankCallback + ldr r0, ._659 + 48 @ debug_80C370C + bl SetMainCallback2 + bl sub_809D51C + ldr r1, ._659 + 52 @ 0x4000008 + ldr r2, ._659 + 56 @ 0x1f0b + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x2 + ldr r2, ._659 + 60 @ 0x1e0a + add r0, r2, #0 + strh r0, [r1] + sub r1, r1, #0xa + mov r2, #0xcd + lsl r2, r2, #0x6 + add r0, r2, #0 + strh r0, [r1] + ldr r0, ._659 + 64 @ debug_80C6B00 + mov r1, #0x0 + bl CreateTask + ldr r1, ._659 + 68 @ gUnknown_Debug_2038A20 + ldr r0, ._659 + 72 @ 0x2018000 + str r0, [r1] + ldr r1, ._659 + 76 @ 0x115 + strh r1, [r0] + strb r6, [r0, #0x2] + strb r6, [r0, #0x3] + strb r6, [r0, #0x5] + strb r6, [r0, #0x7] + strb r6, [r0, #0xa] + strb r6, [r0, #0x8] + ldr r4, ._659 + 80 @ gSpriteTemplate_83F8874 + add r0, r4, #0 + mov r1, #0x6c + mov r2, #0x74 + mov r3, #0x0 + bl CreateSprite + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + ldr r6, ._659 + 84 @ gSprites + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + strh r5, [r0, #0x2e] + mov r1, #0x0 + bl StartSpriteAnim + add r0, r4, #0 + mov r1, #0x6c + mov r2, #0x74 + mov r3, #0x0 + bl CreateSprite + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + mov r1, #0x1 + strh r1, [r0, #0x2e] + bl StartSpriteAnim + add r0, r4, #0 + mov r1, #0x6c + mov r2, #0x74 + mov r3, #0x0 + bl CreateSprite + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + mov r1, #0x2 + strh r1, [r0, #0x2e] + bl StartSpriteAnim + add sp, sp, #0x8 + pop {r4, r5, r6} + pop {r0} + bx r0 +._660: + .align 2, 0 +._659: + .word byte_83F88EC + .word 0x600e000 + .word 0x40000d4 + .word 0x80000400 + .word word_83F888C + .word 0x7fff + .word 0x4000040 + .word 0x4000048 + .word 0x4000052 + .word 0x4000208 + .word 0x4000200 + .word debug_80C3758+1 + .word debug_80C370C+1 + .word 0x4000008 + .word 0x1f0b + .word 0x1e0a + .word debug_80C6B00+1 + .word gUnknown_Debug_2038A20 + .word 0x2018000 + .word 0x115 + .word gSpriteTemplate_83F8874 + .word gSprites + + thumb_func_end InitSeePokemonGraphics + + thumb_func_start debug_80C6B00 +debug_80C6B00: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + add sp, sp, #0xffffffec + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + ldr r1, ._666 @ gUnknown_Debug_083F8815 + mov r0, sp + mov r2, #0x12 + bl memcpy + mov r0, #0xa + mov r1, #0x0 + mov r2, #0xf + mov r3, #0x7 + bl Menu_DrawStdWindowFrame + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x9 + mov r3, #0x9 + bl Menu_DrawStdWindowFrame + mov r0, #0x0 + mov r1, #0xa + mov r2, #0x9 + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + mov r0, #0x10 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x7 + bl Menu_DrawStdWindowFrame + ldr r0, ._666 + 4 @ gUnknown_Debug_083F87D0 + mov r1, #0x11 + mov r2, #0x1 + bl Menu_PrintText + ldr r0, ._666 + 8 @ gUnknown_Debug_083F87D8 + mov r1, #0x1b + mov r2, #0x1 + bl Menu_PrintText + ldr r0, ._666 + 12 @ gUnknown_Debug_083F87E0 + mov r1, #0x11 + mov r2, #0x5 + bl Menu_PrintText + mov r0, #0xa + mov r1, #0x8 + mov r2, #0x1d + mov r3, #0xc + bl Menu_DrawStdWindowFrame + mov r2, #0x0 + ldr r4, ._666 + 16 @ 0x600fa56 + ldr r0, ._666 + 20 @ 0xa311 + add r3, r0, #0 +._661: + lsl r0, r2, #0x1 + add r0, r0, r4 + add r1, r2, r3 + strh r1, [r0] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0xe + bls ._661 @cond_branch + mov r2, #0x0 + ldr r5, ._666 + 24 @ gUnknown_Debug_083F87F4 + lsl r6, r7, #0x2 + mov r8, r6 + ldr r4, ._666 + 28 @ 0x600f256 + ldr r0, ._666 + 32 @ 0x8301 + add r3, r0, #0 +._662: + lsl r0, r2, #0x1 + add r0, r0, r4 + add r1, r2, r3 + strh r1, [r0] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0xe + bls ._662 @cond_branch + add r0, r5, #0 + mov r1, #0x14 + mov r2, #0xa + bl Menu_PrintText + mov r0, #0xa + mov r1, #0xd + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + mov r1, sp + mov r0, #0x23 + strb r0, [r1] + mov r2, #0x0 + ldr r4, ._666 + 36 @ 0x600f396 + mov r5, #0x93 + lsl r5, r5, #0x8 + add r3, r5, #0 +._663: + lsl r1, r2, #0x1 + add r1, r1, r4 + mov r6, sp + add r0, r6, r2 + ldrb r0, [r0] + add r0, r0, r3 + strh r0, [r1] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x11 + bls ._663 @cond_branch + mov r1, sp + mov r0, #0x24 + strb r0, [r1] + mov r2, #0x0 + ldr r5, ._666 + 40 @ gUnknown_Debug_083F8801 + ldr r4, ._666 + 44 @ 0x600f3d6 + mov r0, #0x93 + lsl r0, r0, #0x8 + add r3, r0, #0 +._664: + lsl r1, r2, #0x1 + add r1, r1, r4 + mov r6, sp + add r0, r6, r2 + ldrb r0, [r0] + add r0, r0, r3 + strh r0, [r1] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x11 + bls ._664 @cond_branch + mov r1, sp + mov r0, #0x25 + strb r0, [r1] + mov r2, #0x0 + ldr r4, ._666 + 48 @ 0x600f416 + mov r0, #0x93 + lsl r0, r0, #0x8 + add r3, r0, #0 +._665: + lsl r1, r2, #0x1 + add r1, r1, r4 + mov r6, sp + add r0, r6, r2 + ldrb r0, [r0] + add r0, r0, r3 + strh r0, [r1] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x11 + bls ._665 @cond_branch + add r0, r5, #0 + mov r1, #0xf + mov r2, #0x11 + bl Menu_PrintText + ldr r1, ._666 + 52 @ 0x4000040 + ldr r2, ._666 + 56 @ 0x51ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r5, ._666 + 60 @ 0x699f + add r0, r5, #0 + strh r0, [r1] + ldr r1, ._666 + 64 @ gTasks + mov r6, r8 + add r0, r6, r7 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._666 + 68 @ debug_80C6CB8 + str r1, [r0] + add sp, sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._667: + .align 2, 0 +._666: + .word gUnknown_Debug_083F8815 + .word gUnknown_Debug_083F87D0 + .word gUnknown_Debug_083F87D8 + .word gUnknown_Debug_083F87E0 + .word 0x600fa56 + .word 0xa311 + .word gUnknown_Debug_083F87F4 + .word 0x600f256 + .word 0x8301 + .word 0x600f396 + .word gUnknown_Debug_083F8801 + .word 0x600f3d6 + .word 0x600f416 + .word 0x4000040 + .word 0x51ef + .word 0x699f + .word gTasks + .word debug_80C6CB8+1 + + thumb_func_end debug_80C6B00 + + thumb_func_start debug_80C6CB8 +debug_80C6CB8: + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, r9 + mov r5, r8 + push {r5, r6, r7} + add sp, sp, #0xfffffff4 + mov sl, r0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov sl, r0 + ldr r5, ._668 @ gUnknown_Debug_2038A20 + ldr r4, [r5] + ldrh r2, [r4] + lsl r0, r2, #0x3 + ldr r1, ._668 + 4 @ gMonFrontPicTable + add r0, r0, r1 + ldr r1, ._668 + 8 @ gMonFrontPicCoords + lsl r2, r2, #0x2 + add r2, r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, #0x1] + ldr r3, ._668 + 12 @ gUnknown_081FAF4C + mov r8, r3 + ldr r6, [r3] + str r6, [sp, #0x8] + ldr r3, [r3, #0x4] + str r3, [sp] + ldrh r3, [r4] + str r3, [sp, #0x4] + add r3, r6, #0 + bl DecompressPicFromTable_2 + ldr r0, [r5] + ldrh r0, [r0] + lsl r0, r0, #0x3 + ldr r7, ._668 + 16 @ gMonPaletteTable + add r0, r0, r7 + bl LoadCompressedObjectPalette + ldr r0, [r5] + ldrh r0, [r0] + mov r1, #0x1 + bl GetMonSpriteTemplate_803C56C + ldr r0, ._668 + 20 @ gUnknown_02024E8C + mov r1, #0x28 + mov r2, #0x28 + mov r3, #0x0 + bl CreateSprite + ldr r1, [r5] + strb r0, [r1, #0x2] + ldr r2, [r5] + ldrb r1, [r2, #0x2] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + ldr r1, ._668 + 24 @ gSprites + add r0, r0, r1 + ldr r3, ._668 + 28 @ debug_69 + mov r9, r3 + str r3, [r0] + ldrb r0, [r2, #0x2] + lsl r1, r0, #0x4 + add r1, r1, r0 + lsl r1, r1, #0x2 + ldr r6, ._668 + 32 @ gSprites + add r1, r1, r6 + ldrb r2, [r1, #0x5] + mov r6, #0xd + neg r6, r6 + add r0, r6, #0 + and r0, r0, r2 + strb r0, [r1, #0x5] + ldr r4, [r5] + ldrh r2, [r4] + lsl r0, r2, #0x3 + ldr r1, ._668 + 36 @ gMonBackPicTable + add r0, r0, r1 + ldr r1, ._668 + 40 @ gMonBackPicCoords + lsl r2, r2, #0x2 + add r2, r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, #0x1] + mov r7, r8 + ldr r3, [r7, #0x8] + str r3, [sp] + ldrh r3, [r4] + str r3, [sp, #0x4] + ldr r3, [sp, #0x8] + bl DecompressPicFromTable_2 + ldr r0, [r5] + ldrh r0, [r0] + lsl r0, r0, #0x3 + ldr r1, ._668 + 16 @ gMonPaletteTable + add r0, r0, r1 + bl LoadCompressedObjectPalette + ldr r0, [r5] + ldrh r0, [r0] + mov r1, #0x2 + bl GetMonSpriteTemplate_803C56C + ldr r0, ._668 + 20 @ gUnknown_02024E8C + mov r1, #0x28 + mov r2, #0x78 + mov r3, #0x0 + bl CreateSprite + ldr r1, [r5] + strb r0, [r1, #0x3] + ldr r2, [r5] + ldrb r1, [r2, #0x3] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + ldr r3, ._668 + 24 @ gSprites + add r0, r0, r3 + mov r7, r9 + str r7, [r0] + ldrb r1, [r2, #0x3] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + ldr r1, ._668 + 32 @ gSprites + add r0, r0, r1 + ldrb r1, [r0, #0x5] + and r6, r6, r1 + strb r6, [r0, #0x5] + ldr r0, [r5] + ldrh r0, [r0] + ldr r1, ._668 + 44 @ sub_809D62C + mov r2, #0x0 + str r2, [sp] + str r2, [sp, #0x4] + mov r2, #0x68 + mov r3, #0x2c + bl CreateMonIcon + ldr r1, [r5] + strb r0, [r1, #0x4] + ldr r0, [r5] + ldrh r0, [r0] + bl SpeciesToNationalPokedexNum + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r2, #0xff + lsl r2, r2, #0x2 + mov r1, #0x2 + bl sub_8091738 + ldr r1, ._668 + 48 @ 0x600f858 + ldr r3, ._668 + 52 @ 0xf3fc + add r0, r3, #0 + strh r0, [r1] + add r1, r1, #0x2 + ldr r6, ._668 + 56 @ 0xf3fd + add r0, r6, #0 + strh r0, [r1] + add r1, r1, #0x3e + ldr r7, ._668 + 60 @ 0xf3fe + add r0, r7, #0 + strh r0, [r1] + add r1, r1, #0x2 + ldr r2, ._668 + 64 @ 0xf3ff + add r0, r2, #0 + strh r0, [r1] + ldr r0, [r5] + ldrh r0, [r0] + mov r1, #0x11 + mov r2, #0x3 + bl debug_80C3800 + ldr r0, [r5] + ldrh r0, [r0] + mov r1, #0x1a + mov r2, #0x5 + bl debug_80C376C + ldr r2, [r5] + ldrb r1, [r2, #0x2] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + ldr r3, ._668 + 32 @ gSprites + add r0, r0, r3 + ldrb r0, [r0, #0x5] + lsr r0, r0, #0x4 + strb r0, [r2, #0x6] + ldr r0, [r5] + ldrb r0, [r0, #0x6] + lsl r0, r0, #0x5 + ldr r4, ._668 + 68 @ gPlttBufferUnfaded + add r0, r0, r4 + ldr r6, ._668 + 72 @ 0xffffff00 + add r1, r4, r6 + mov r2, #0x10 + bl CpuSet + ldr r0, [r5] + ldrb r0, [r0, #0x6] + lsl r0, r0, #0x5 + add r0, r0, r4 + ldr r1, ._668 + 76 @ gPlttBufferFaded + mov r2, #0x10 + bl CpuSet + ldr r1, ._668 + 80 @ gTasks + mov r7, sl + lsl r0, r7, #0x2 + add r0, r0, sl + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._668 + 84 @ debug_80C6EE8 + str r1, [r0] + ldr r0, [r5] + mov r1, #0x0 + strb r1, [r0, #0x9] + bl StopCryAndClearCrySongs + ldr r0, [r5] + ldrh r0, [r0] + mov r1, #0x0 + bl PlayCry1 + add sp, sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov r9, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._669: + .align 2, 0 +._668: + .word gUnknown_Debug_2038A20 + .word gMonFrontPicTable + .word gMonFrontPicCoords + .word gUnknown_081FAF4C + .word gMonPaletteTable + .word gUnknown_02024E8C + .word gSprites+0x1c + .word debug_69+1 + .word gSprites + .word gMonBackPicTable + .word gMonBackPicCoords + .word sub_809D62C+1 + .word 0x600f858 + .word 0xf3fc + .word 0xf3fd + .word 0xf3fe + .word 0xf3ff + .word gPlttBufferUnfaded+0x200 + .word 0xffffff00 + .word gPlttBufferFaded+0x100 + .word gTasks + .word debug_80C6EE8+1 + + thumb_func_end debug_80C6CB8 + + thumb_func_start debug_80C6EE8 +debug_80C6EE8: + push {r4, r5, r6, lr} + add r6, r0, #0 + lsl r6, r6, #0x18 + lsr r6, r6, #0x18 + ldr r4, ._670 @ gPlttBufferUnfaded + ldr r5, ._670 + 4 @ gUnknown_Debug_2038A20 + ldr r1, [r5] + add r1, r1, #0x10 + add r0, r4, #0 + mov r2, #0x10 + bl CpuSet + ldr r0, ._670 + 8 @ 0xffffff00 + add r4, r4, r0 + ldr r3, [r5] + ldrb r0, [r3, #0x7] + add r0, r0, #0x81 + lsl r0, r0, #0x1 + add r0, r0, r4 + ldrh r4, [r0] + mov r1, #0x1f + and r1, r1, r4 + ldrb r2, [r3, #0xc] + mov r0, #0x20 + neg r0, r0 + and r0, r0, r2 + orr r0, r0, r1 + strb r0, [r3, #0xc] + ldr r3, [r5] + mov r1, #0xf8 + lsl r1, r1, #0x2 + and r1, r1, r4 + ldrh r2, [r3, #0xc] + ldr r0, ._670 + 12 @ 0xfffffc1f + and r0, r0, r2 + orr r0, r0, r1 + strh r0, [r3, #0xc] + mov r1, #0xf8 + lsl r1, r1, #0x7 + and r1, r1, r4 + lsr r1, r1, #0x8 + ldrb r2, [r3, #0xd] + mov r0, #0x7d + neg r0, r0 + and r0, r0, r2 + orr r0, r0, r1 + strb r0, [r3, #0xd] + ldr r2, [r5] + ldrb r1, [r2, #0xd] + mov r0, #0x7f + and r0, r0, r1 + strb r0, [r2, #0xd] + ldr r0, [r5] + ldrb r0, [r0, #0x7] + add r0, r0, #0x1 + mov r1, #0xb + mov r2, #0xa + mov r3, #0x2 + bl debug_80C68CC + ldr r0, ._670 + 16 @ gUnknown_Debug_083F8813 + mov r1, #0xd + mov r2, #0xa + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0xe + mov r2, #0xa + mov r3, #0x4 + bl debug_80C68CC + ldr r1, ._670 + 20 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._670 + 24 @ debug_80C6FA8 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 +._671: + .align 2, 0 +._670: + .word gPlttBufferUnfaded+0x100 + .word gUnknown_Debug_2038A20 + .word 0xffffff00 + .word 0xfffffc1f + .word gUnknown_Debug_083F8813 + .word gTasks + .word debug_80C6FA8+1 + + thumb_func_end debug_80C6EE8 + + thumb_func_start debug_80C6FA8 +debug_80C6FA8: + push {r4, r5, r6, lr} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + ldr r1, ._674 @ gMain + ldrh r2, [r1, #0x2e] + mov r0, #0x2 + and r0, r0, r2 + add r4, r1, #0 + cmp r0, #0 + beq ._672 @cond_branch + mov r0, #0x5 + bl PlaySE + mov r0, #0x1 + neg r0, r0 + mov r1, #0x0 + str r1, [sp] + mov r2, #0x0 + mov r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, ._674 + 4 @ debug_80C370C + bl SetMainCallback2 + ldr r1, ._674 + 8 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._674 + 12 @ debug_80C373C + str r1, [r0] + b ._703 +._675: + .align 2, 0 +._674: + .word gMain + .word debug_80C370C+1 + .word gTasks + .word debug_80C373C+1 +._672: + ldrh r1, [r4, #0x30] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._676 @cond_branch + ldr r4, ._678 @ gUnknown_Debug_2038A20 + ldr r0, [r4] + ldrh r1, [r0] + mov r0, #0x0 + b ._677 +._679: + .align 2, 0 +._678: + .word gUnknown_Debug_2038A20 +._676: + mov r0, #0x80 + lsl r0, r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._680 @cond_branch + ldr r4, ._682 @ gUnknown_Debug_2038A20 + ldr r0, [r4] + ldrh r1, [r0] + mov r0, #0x1 +._677: + bl debug_80C3878 + ldr r1, [r4] + strh r0, [r1] + ldr r1, ._682 + 4 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._682 + 8 @ debug_80C71FC + str r1, [r0] + b ._703 +._683: + .align 2, 0 +._682: + .word gUnknown_Debug_2038A20 + .word gTasks + .word debug_80C71FC+1 +._680: + mov r3, #0x1 + and r3, r3, r2 + cmp r3, #0 + beq ._684 @cond_branch + ldr r0, ._686 @ gUnknown_Debug_2038A20 + ldr r1, [r0] + mov r0, #0x1 + strb r0, [r1, #0x5] + ldr r1, ._686 + 4 @ 0x4000040 + ldr r2, ._686 + 8 @ 0x51ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r2, ._686 + 12 @ 0x4167 + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._686 + 16 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._686 + 20 @ debug_80C7294 + str r1, [r0] + b ._703 +._687: + .align 2, 0 +._686: + .word gUnknown_Debug_2038A20 + .word 0x4000040 + .word 0x51ef + .word 0x4167 + .word gTasks + .word debug_80C7294+1 +._684: + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._689 @cond_branch + ldr r1, ._691 @ gUnknown_Debug_2038A20 + ldr r2, [r1] + ldrb r0, [r2, #0x7] + cmp r0, #0xd + bhi ._689 @cond_branch + lsl r0, r0, #0x1 + ldr r2, ._691 + 4 @ 0x5000102 + add r0, r0, r2 + strh r3, [r0] + ldr r1, [r1] + ldrb r0, [r1, #0x7] + add r0, r0, #0x1 + strb r0, [r1, #0x7] + b ._695 +._692: + .align 2, 0 +._691: + .word gUnknown_Debug_2038A20 + .word 0x5000102 +._689: + ldrh r1, [r4, #0x30] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._694 @cond_branch + ldr r2, ._696 @ gUnknown_Debug_2038A20 + ldr r1, [r2] + ldrb r0, [r1, #0x7] + cmp r0, #0 + beq ._694 @cond_branch + lsl r0, r0, #0x1 + ldr r1, ._696 + 4 @ 0x5000102 + add r0, r0, r1 + mov r1, #0x0 + strh r1, [r0] + ldr r1, [r2] + ldrb r0, [r1, #0x7] + sub r0, r0, #0x1 + strb r0, [r1, #0x7] + b ._695 +._697: + .align 2, 0 +._696: + .word gUnknown_Debug_2038A20 + .word 0x5000102 +._694: + ldrh r1, [r4, #0x2e] + mov r0, #0x8 + and r0, r0, r1 + cmp r0, #0 + beq ._698 @cond_branch + ldr r4, ._701 @ gUnknown_Debug_2038A20 + ldr r2, [r4] + ldrb r0, [r2, #0x9] + mov r1, #0x1 + eor r0, r0, r1 + strb r0, [r2, #0x9] + ldr r1, [r4] + ldrb r0, [r1, #0x9] + cmp r0, #0 + beq ._699 @cond_branch + ldrh r0, [r1] + mov r1, #0x0 + mov r2, #0x0 + bl GetMonSpritePalFromOtIdPersonality + ldr r1, [r4] + ldrb r1, [r1, #0x6] + lsl r1, r1, #0x14 + mov r2, #0x80 + lsl r2, r2, #0x11 + add r1, r1, r2 + lsr r1, r1, #0x10 + mov r2, #0x20 + bl LoadCompressedPalette + b ._700 +._702: + .align 2, 0 +._701: + .word gUnknown_Debug_2038A20 +._699: + ldrh r0, [r1] + mov r1, #0x0 + mov r2, #0x9 + bl GetMonSpritePalFromOtIdPersonality + ldr r1, [r4] + ldrb r1, [r1, #0x6] + lsl r1, r1, #0x14 + mov r2, #0x80 + lsl r2, r2, #0x11 + add r1, r1, r2 + lsr r1, r1, #0x10 + mov r2, #0x20 + bl LoadCompressedPalette +._700: + ldr r5, ._704 @ gUnknown_Debug_2038A20 + ldr r0, [r5] + ldrb r0, [r0, #0x6] + lsl r0, r0, #0x5 + ldr r4, ._704 + 4 @ gPlttBufferUnfaded + add r0, r0, r4 + ldr r2, ._704 + 8 @ 0xffffff00 + add r1, r4, r2 + mov r2, #0x10 + bl CpuSet + ldr r0, [r5] + ldrb r0, [r0, #0x6] + lsl r0, r0, #0x5 + add r0, r0, r4 + ldr r1, ._704 + 12 @ gPlttBufferFaded + mov r2, #0x10 + bl CpuSet +._695: + ldr r1, ._704 + 16 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._704 + 20 @ debug_80C6EE8 + str r1, [r0] + b ._703 +._705: + .align 2, 0 +._704: + .word gUnknown_Debug_2038A20 + .word gPlttBufferUnfaded+0x200 + .word 0xffffff00 + .word gPlttBufferFaded+0x100 + .word gTasks + .word debug_80C6EE8+1 +._698: + mov r0, #0x4 + and r0, r0, r1 + cmp r0, #0 + beq ._706 @cond_branch + bl StopCryAndClearCrySongs + ldr r0, ._707 @ gUnknown_Debug_2038A20 + ldr r0, [r0] + ldrh r0, [r0] + mov r1, #0x0 + bl PlayCry1 +._706: + ldr r2, ._707 @ gUnknown_Debug_2038A20 + ldr r1, [r2] + ldrb r0, [r1, #0x8] + add r0, r0, #0x4 + strb r0, [r1, #0x8] + ldr r3, [r2] + ldrb r1, [r3, #0x8] + mov r0, #0x1f + and r0, r0, r1 + strb r0, [r3, #0x8] + ldr r0, [r2] + ldrb r1, [r0, #0x7] + lsl r1, r1, #0x1 + ldr r2, ._707 + 4 @ 0x5000142 + add r1, r1, r2 + ldr r2, ._707 + 8 @ gUnknown_Debug_083F8790 + ldrb r0, [r0, #0x8] + lsl r0, r0, #0x1 + add r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] +._703: + add sp, sp, #0x4 + pop {r4, r5, r6} + pop {r0} + bx r0 +._708: + .align 2, 0 +._707: + .word gUnknown_Debug_2038A20 + .word 0x5000142 + .word gUnknown_Debug_083F8790 + + thumb_func_end debug_80C6FA8 + + thumb_func_start debug_80C71FC +debug_80C71FC: + push {r4, r5, r6, lr} + add r5, r0, #0 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + ldr r6, ._709 @ gSprites + ldr r4, ._709 + 4 @ gUnknown_Debug_2038A20 + ldr r0, [r4] + ldrb r1, [r0, #0x2] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + ldrb r0, [r0, #0x5] + lsr r0, r0, #0x4 + bl GetSpritePaletteTagByPaletteNum + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FreeSpritePaletteByTag + ldr r0, [r4] + ldrb r1, [r0, #0x2] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + bl DestroySprite + ldr r0, [r4] + ldrb r1, [r0, #0x3] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + ldrb r0, [r0, #0x5] + lsr r0, r0, #0x4 + bl GetSpritePaletteTagByPaletteNum + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FreeSpritePaletteByTag + ldr r0, [r4] + ldrb r1, [r0, #0x3] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + bl DestroySprite + ldr r0, [r4] + ldrb r1, [r0, #0x4] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + bl sub_809D510 + ldr r1, ._709 + 8 @ gTasks + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._709 + 12 @ debug_80C6CB8 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 +._710: + .align 2, 0 +._709: + .word gSprites + .word gUnknown_Debug_2038A20 + .word gTasks + .word debug_80C6CB8+1 + + thumb_func_end debug_80C71FC + + thumb_func_start debug_80C7294 +debug_80C7294: + push {r4, r5, r6, r7, lr} + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + ldr r0, ._713 @ gMain + ldrh r2, [r0, #0x2e] + mov r1, #0x1 + and r1, r1, r2 + add r3, r0, #0 + cmp r1, #0 + beq ._711 @cond_branch + ldr r0, ._713 + 4 @ gUnknown_Debug_2038A20 + ldr r1, [r0] + mov r0, #0x0 + strb r0, [r1, #0x5] + ldr r1, ._713 + 8 @ 0x4000040 + ldr r2, ._713 + 12 @ 0x51ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r2, ._713 + 16 @ 0x699f + add r0, r2, #0 + strh r0, [r1] + b ._712 +._714: + .align 2, 0 +._713: + .word gMain + .word gUnknown_Debug_2038A20 + .word 0x4000040 + .word 0x51ef + .word 0x699f +._711: + mov r0, #0x2 + and r0, r0, r2 + cmp r0, #0 + beq ._715 @cond_branch + ldr r6, ._717 @ gUnknown_Debug_2038A20 + ldr r0, [r6] + strb r1, [r0, #0x5] + ldr r1, ._717 + 4 @ 0x4000040 + ldr r2, ._717 + 8 @ 0x51ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r2, ._717 + 12 @ 0x699f + add r0, r2, #0 + strh r0, [r1] + ldr r0, [r6] + add r0, r0, #0x10 + ldr r4, ._717 + 16 @ gPlttBufferUnfaded + add r1, r4, #0 + mov r2, #0x10 + bl CpuSet + ldr r0, [r6] + add r0, r0, #0x10 + ldr r5, ._717 + 20 @ gPlttBufferFaded + add r1, r5, #0 + mov r2, #0x10 + bl CpuSet + ldr r1, [r6] + add r0, r1, #0 + add r0, r0, #0x10 + ldrb r1, [r1, #0x6] + lsl r1, r1, #0x5 + mov r2, #0x80 + lsl r2, r2, #0x1 + add r4, r4, r2 + add r1, r1, r4 + mov r2, #0x10 + bl CpuSet + ldr r1, [r6] + add r0, r1, #0 + add r0, r0, #0x10 + ldrb r1, [r1, #0x6] + lsl r1, r1, #0x5 + mov r2, #0x80 + lsl r2, r2, #0x1 + add r5, r5, r2 + add r1, r1, r5 + mov r2, #0x10 + bl CpuSet +._712: + ldr r1, ._717 + 24 @ gTasks + lsl r0, r7, #0x2 + add r0, r0, r7 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._717 + 28 @ debug_80C6EE8 + str r1, [r0] + b ._754 +._718: + .align 2, 0 +._717: + .word gUnknown_Debug_2038A20 + .word 0x4000040 + .word 0x51ef + .word 0x699f + .word gPlttBufferUnfaded+0x100 + .word gPlttBufferFaded+0x100 + .word gTasks + .word debug_80C6EE8+1 +._715: + ldrh r1, [r3, #0x30] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._720 @cond_branch + ldr r0, ._722 @ gUnknown_Debug_2038A20 + ldr r1, [r0] + ldrb r0, [r1, #0xa] + cmp r0, #0x1 + bhi ._720 @cond_branch + add r0, r0, #0x1 + strb r0, [r1, #0xa] + b ._754 +._723: + .align 2, 0 +._722: + .word gUnknown_Debug_2038A20 +._720: + ldrh r1, [r3, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._725 @cond_branch + ldr r0, ._727 @ gUnknown_Debug_2038A20 + ldr r1, [r0] + ldrb r0, [r1, #0xa] + cmp r0, #0 + beq ._725 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1, #0xa] + b ._754 +._728: + .align 2, 0 +._727: + .word gUnknown_Debug_2038A20 +._725: + ldrh r1, [r3, #0x30] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._729 @cond_branch + ldr r0, ._734 @ gUnknown_Debug_2038A20 + ldr r2, [r0] + ldrb r0, [r2, #0xa] + cmp r0, #0x1 + beq ._730 @cond_branch + cmp r0, #0x1 + bgt ._731 @cond_branch + cmp r0, #0 + beq ._732 @cond_branch + b ._754 +._735: + .align 2, 0 +._734: + .word gUnknown_Debug_2038A20 +._731: + cmp r0, #0x2 + beq ._736 @cond_branch + b ._754 +._732: + ldrb r3, [r2, #0xc] + lsl r1, r3, #0x1b + lsr r0, r1, #0x1b + cmp r0, #0x1e + bhi ._761 @cond_branch + add r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + mov r1, #0x20 + neg r1, r1 + and r1, r1, r3 + orr r1, r1, r0 + strb r1, [r2, #0xc] + b ._761 +._730: + ldrh r3, [r2, #0xc] + lsl r1, r3, #0x16 + lsr r0, r1, #0x1b + cmp r0, #0x1e + bhi ._761 @cond_branch + add r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + lsl r0, r0, #0x5 + ldr r1, ._742 @ 0xfffffc1f + and r1, r1, r3 + orr r1, r1, r0 + strh r1, [r2, #0xc] + b ._761 +._743: + .align 2, 0 +._742: + .word 0xfffffc1f +._736: + ldrb r3, [r2, #0xd] + lsl r1, r3, #0x19 + lsr r0, r1, #0x1b + cmp r0, #0x1e + bhi ._761 @cond_branch + add r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + lsl r0, r0, #0x2 + mov r1, #0x7d + neg r1, r1 + and r1, r1, r3 + orr r1, r1, r0 + strb r1, [r2, #0xd] + b ._761 +._729: + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._754 @cond_branch + ldr r0, ._751 @ gUnknown_Debug_2038A20 + ldr r3, [r0] + ldrb r0, [r3, #0xa] + cmp r0, #0x1 + beq ._747 @cond_branch + cmp r0, #0x1 + bgt ._748 @cond_branch + cmp r0, #0 + beq ._749 @cond_branch + b ._754 +._752: + .align 2, 0 +._751: + .word gUnknown_Debug_2038A20 +._748: + cmp r0, #0x2 + beq ._753 @cond_branch + b ._754 +._749: + ldrb r2, [r3, #0xc] + mov r0, #0x1f + and r0, r0, r2 + cmp r0, #0 + beq ._761 @cond_branch + lsl r0, r2, #0x1b + lsr r0, r0, #0x1b + sub r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + mov r1, #0x20 + neg r1, r1 + and r1, r1, r2 + orr r1, r1, r0 + strb r1, [r3, #0xc] + b ._761 +._747: + ldrh r2, [r3, #0xc] + mov r0, #0xf8 + lsl r0, r0, #0x2 + and r0, r0, r2 + cmp r0, #0 + beq ._761 @cond_branch + lsl r0, r2, #0x16 + lsr r0, r0, #0x1b + sub r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + lsl r0, r0, #0x5 + ldr r1, ._759 @ 0xfffffc1f + and r1, r1, r2 + orr r1, r1, r0 + strh r1, [r3, #0xc] + b ._761 +._760: + .align 2, 0 +._759: + .word 0xfffffc1f +._753: + ldrb r2, [r3, #0xd] + mov r0, #0x7c + and r0, r0, r2 + cmp r0, #0 + beq ._761 @cond_branch + lsl r0, r2, #0x19 + lsr r0, r0, #0x1b + sub r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + lsl r0, r0, #0x2 + mov r1, #0x7d + neg r1, r1 + and r1, r1, r2 + orr r1, r1, r0 + strb r1, [r3, #0xd] +._761: + ldr r0, ._762 @ gTasks + lsl r1, r7, #0x2 + add r1, r1, r7 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._762 + 4 @ debug_80C74E4 + str r0, [r1] +._754: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._763: + .align 2, 0 +._762: + .word gTasks + .word debug_80C74E4+1 + + thumb_func_end debug_80C7294 + + thumb_func_start debug_80C74E4 +debug_80C74E4: + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + add r5, r0, #0 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + ldr r0, ._764 @ gUnknown_Debug_2038A20 + ldr r3, [r0] + ldrb r0, [r3, #0xc] + lsl r0, r0, #0x1b + lsr r0, r0, #0x1b + ldrh r2, [r3, #0xc] + mov r1, #0xf8 + lsl r1, r1, #0x2 + and r1, r1, r2 + add r0, r0, r1 + ldrb r1, [r3, #0xd] + lsl r1, r1, #0x19 + lsr r1, r1, #0x1b + lsl r1, r1, #0xa + add r0, r0, r1 + ldr r6, ._764 + 4 @ gPlttBufferUnfaded + ldrb r1, [r3, #0x7] + add r1, r1, #0x81 + lsl r1, r1, #0x1 + add r1, r1, r6 + strh r0, [r1] + ldr r1, ._764 + 8 @ gPlttBufferFaded + mov r8, r1 + ldrb r1, [r3, #0x7] + add r1, r1, #0x81 + lsl r1, r1, #0x1 + add r1, r1, r8 + strh r0, [r1] + ldrb r1, [r3, #0x6] + lsl r1, r1, #0x4 + ldrb r2, [r3, #0x7] + ldr r4, ._764 + 12 @ 0x101 + add r2, r2, r4 + add r1, r1, r2 + lsl r1, r1, #0x1 + add r1, r1, r6 + strh r0, [r1] + ldrb r1, [r3, #0x6] + lsl r1, r1, #0x4 + ldrb r2, [r3, #0x7] + add r2, r2, r4 + add r1, r1, r2 + lsl r1, r1, #0x1 + add r1, r1, r8 + strh r0, [r1] + mov r1, #0xe + mov r2, #0xa + mov r3, #0x4 + bl debug_80C68CC + ldr r1, ._764 + 16 @ gTasks + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._764 + 20 @ debug_80C7294 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 +._765: + .align 2, 0 +._764: + .word gUnknown_Debug_2038A20 + .word gPlttBufferUnfaded + .word gPlttBufferFaded + .word 0x101 + .word gTasks + .word debug_80C7294+1 + + thumb_func_end debug_80C74E4 + + thumb_func_start debug_80C7584 +debug_80C7584: + push {r4, lr} + add r2, r0, #0 + ldr r0, ._771 @ gUnknown_Debug_2038A20 + ldr r3, [r0] + ldrb r1, [r3, #0x5] + add r4, r0, #0 + cmp r1, #0 + beq ._766 @cond_branch + mov r1, #0x2e + ldsh r0, [r2, r1] + cmp r0, #0x1 + beq ._767 @cond_branch + cmp r0, #0x1 + ble ._768 @cond_branch + cmp r0, #0x2 + beq ._769 @cond_branch +._768: + ldrb r0, [r3, #0xc] + lsl r0, r0, #0x1b + b ._773 +._772: + .align 2, 0 +._771: + .word gUnknown_Debug_2038A20 +._767: + ldrh r0, [r3, #0xc] + lsl r0, r0, #0x16 + b ._773 +._769: + ldrb r0, [r3, #0xd] + lsl r0, r0, #0x19 +._773: + lsr r0, r0, #0x1b + lsl r0, r0, #0x2 + strh r0, [r2, #0x24] + mov r1, #0x2e + ldsh r0, [r2, r1] + lsl r0, r0, #0x3 + strh r0, [r2, #0x26] + ldrh r0, [r2, #0x30] + add r3, r0, #1 + strh r3, [r2, #0x30] + mov r0, #0x2e + ldsh r1, [r2, r0] + ldr r0, [r4] + ldrb r0, [r0, #0xa] + cmp r1, r0 + bne ._775 @cond_branch + mov r0, #0x8 + and r3, r3, r0 + cmp r3, #0 + bne ._775 @cond_branch +._766: + add r0, r2, #0 + add r0, r0, #0x3e + ldrb r1, [r0] + mov r2, #0x4 + orr r1, r1, r2 + strb r1, [r0] + b ._776 +._775: + add r2, r2, #0x3e + ldrb r1, [r2] + mov r0, #0x5 + neg r0, r0 + and r0, r0, r1 + strb r0, [r2] +._776: + pop {r4} + pop {r0} + bx r0 + + thumb_func_end debug_80C7584 + + thumb_func_start InitSeeTrainers +InitSeeTrainers: + push {r4, r5, r6, lr} + add sp, sp, #0xfffffffc + bl debug_80C35DC + ldr r1, ._777 @ byte_83F88EC + ldr r2, ._777 + 4 @ 0x600e000 + ldr r0, ._777 + 8 @ 0x40000d4 + str r1, [r0] + str r2, [r0, #0x4] + ldr r1, ._777 + 12 @ 0x80000400 + str r1, [r0, #0x8] + ldr r0, [r0, #0x8] + ldr r0, ._777 + 16 @ word_83F888C + mov r1, #0x80 + mov r2, #0x60 + bl LoadPalette + mov r0, #0x1 + neg r0, r0 + mov r5, #0x0 + str r5, [sp] + mov r1, #0x0 + mov r2, #0x10 + mov r3, #0x0 + bl BeginNormalPaletteFade + ldr r0, ._777 + 20 @ 0x4000040 + mov r6, #0x0 + strh r5, [r0] + add r0, r0, #0x4 + strh r5, [r0] + sub r0, r0, #0x2 + strh r5, [r0] + add r0, r0, #0x4 + strh r5, [r0] + ldr r1, ._777 + 24 @ 0x4000048 + mov r0, #0x3f + strh r0, [r1] + add r1, r1, #0x2 + mov r0, #0x1f + strh r0, [r1] + add r1, r1, #0x6 + mov r0, #0xf1 + strh r0, [r1] + ldr r0, ._777 + 28 @ 0x4000052 + strh r5, [r0] + add r1, r1, #0x4 + mov r0, #0x7 + strh r0, [r1] + ldr r3, ._777 + 32 @ 0x4000208 + ldrh r2, [r3] + strh r5, [r3] + ldr r4, ._777 + 36 @ 0x4000200 + ldrh r0, [r4] + mov r1, #0x1 + orr r0, r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r0, ._777 + 40 @ debug_80C3758 + bl SetVBlankCallback + ldr r0, ._777 + 44 @ debug_80C370C + bl SetMainCallback2 + ldr r1, ._777 + 48 @ 0x4000008 + ldr r2, ._777 + 52 @ 0x1f0b + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x2 + ldr r2, ._777 + 56 @ 0x1e0a + add r0, r2, #0 + strh r0, [r1] + sub r1, r1, #0xa + mov r2, #0xcd + lsl r2, r2, #0x6 + add r0, r2, #0 + strh r0, [r1] + ldr r0, ._777 + 60 @ debug_80C777C + mov r1, #0x0 + bl CreateTask + ldr r1, ._777 + 64 @ gUnknown_Debug_2038A20 + ldr r0, ._777 + 68 @ 0x2018000 + str r0, [r1] + strh r5, [r0] + strb r6, [r0, #0x2] + strb r6, [r0, #0x3] + strb r6, [r0, #0x5] + strb r6, [r0, #0x7] + strb r6, [r0, #0xa] + strb r6, [r0, #0x8] + ldr r4, ._777 + 72 @ gSpriteTemplate_83F8874 + add r0, r4, #0 + mov r1, #0x6c + mov r2, #0x74 + mov r3, #0x0 + bl CreateSprite + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + ldr r6, ._777 + 76 @ gSprites + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + strh r5, [r0, #0x2e] + mov r1, #0x0 + bl StartSpriteAnim + add r0, r4, #0 + mov r1, #0x6c + mov r2, #0x74 + mov r3, #0x0 + bl CreateSprite + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + mov r1, #0x1 + strh r1, [r0, #0x2e] + bl StartSpriteAnim + add r0, r4, #0 + mov r1, #0x6c + mov r2, #0x74 + mov r3, #0x0 + bl CreateSprite + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + mov r1, #0x2 + strh r1, [r0, #0x2e] + bl StartSpriteAnim + add sp, sp, #0x4 + pop {r4, r5, r6} + pop {r0} + bx r0 +._778: + .align 2, 0 +._777: + .word byte_83F88EC + .word 0x600e000 + .word 0x40000d4 + .word 0x80000400 + .word word_83F888C + .word 0x4000040 + .word 0x4000048 + .word 0x4000052 + .word 0x4000208 + .word 0x4000200 + .word debug_80C3758+1 + .word debug_80C370C+1 + .word 0x4000008 + .word 0x1f0b + .word 0x1e0a + .word debug_80C777C+1 + .word gUnknown_Debug_2038A20 + .word 0x2018000 + .word gSpriteTemplate_83F8874 + .word gSprites + + thumb_func_end InitSeeTrainers + + thumb_func_start debug_80C777C +debug_80C777C: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + add sp, sp, #0xffffffec + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + ldr r1, ._784 @ gUnknown_Debug_083F8815 + mov r0, sp + mov r2, #0x12 + bl memcpy + mov r0, #0x9 + mov r1, #0x0 + mov r2, #0xe + mov r3, #0x7 + bl Menu_DrawStdWindowFrame + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x9 + mov r3, #0x9 + bl Menu_DrawStdWindowFrame + mov r0, #0x0 + mov r1, #0xa + mov r2, #0x9 + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + mov r0, #0xe + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x7 + bl Menu_DrawStdWindowFrame + ldr r0, ._784 + 4 @ gUnknown_Debug_083F87D0 + mov r1, #0xf + mov r2, #0x1 + bl Menu_PrintText + ldr r0, ._784 + 8 @ gUnknown_Debug_083F87D8 + mov r1, #0x19 + mov r2, #0x1 + bl Menu_PrintText + ldr r0, ._784 + 12 @ gUnknown_Debug_083F87E0 + mov r1, #0xf + mov r2, #0x5 + bl Menu_PrintText + mov r0, #0xa + mov r1, #0x8 + mov r2, #0x1d + mov r3, #0xc + bl Menu_DrawStdWindowFrame + mov r2, #0x0 + ldr r4, ._784 + 16 @ 0x600fa56 + ldr r0, ._784 + 20 @ 0xa311 + add r3, r0, #0 +._779: + lsl r0, r2, #0x1 + add r0, r0, r4 + add r1, r2, r3 + strh r1, [r0] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0xe + bls ._779 @cond_branch + mov r2, #0x0 + ldr r5, ._784 + 24 @ gUnknown_Debug_083F87F4 + lsl r6, r7, #0x2 + mov r8, r6 + ldr r4, ._784 + 28 @ 0x600f256 + ldr r0, ._784 + 32 @ 0x8301 + add r3, r0, #0 +._780: + lsl r0, r2, #0x1 + add r0, r0, r4 + add r1, r2, r3 + strh r1, [r0] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0xe + bls ._780 @cond_branch + add r0, r5, #0 + mov r1, #0x14 + mov r2, #0xa + bl Menu_PrintText + mov r0, #0xa + mov r1, #0xd + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + mov r1, sp + mov r0, #0x23 + strb r0, [r1] + mov r2, #0x0 + ldr r4, ._784 + 36 @ 0x600f396 + mov r5, #0x93 + lsl r5, r5, #0x8 + add r3, r5, #0 +._781: + lsl r1, r2, #0x1 + add r1, r1, r4 + mov r6, sp + add r0, r6, r2 + ldrb r0, [r0] + add r0, r0, r3 + strh r0, [r1] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x11 + bls ._781 @cond_branch + mov r1, sp + mov r0, #0x24 + strb r0, [r1] + mov r2, #0x0 + ldr r5, ._784 + 40 @ gUnknown_Debug_083F8801 + ldr r4, ._784 + 44 @ 0x600f3d6 + mov r0, #0x93 + lsl r0, r0, #0x8 + add r3, r0, #0 +._782: + lsl r1, r2, #0x1 + add r1, r1, r4 + mov r6, sp + add r0, r6, r2 + ldrb r0, [r0] + add r0, r0, r3 + strh r0, [r1] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x11 + bls ._782 @cond_branch + mov r1, sp + mov r0, #0x25 + strb r0, [r1] + mov r2, #0x0 + ldr r4, ._784 + 48 @ 0x600f416 + mov r0, #0x93 + lsl r0, r0, #0x8 + add r3, r0, #0 +._783: + lsl r1, r2, #0x1 + add r1, r1, r4 + mov r6, sp + add r0, r6, r2 + ldrb r0, [r0] + add r0, r0, r3 + strh r0, [r1] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x11 + bls ._783 @cond_branch + add r0, r5, #0 + mov r1, #0xf + mov r2, #0x11 + bl Menu_PrintText + ldr r1, ._784 + 52 @ 0x4000040 + ldr r2, ._784 + 56 @ 0x51ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r5, ._784 + 60 @ 0x699f + add r0, r5, #0 + strh r0, [r1] + ldr r1, ._784 + 64 @ gTasks + mov r6, r8 + add r0, r6, r7 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._784 + 68 @ debug_80C7934 + str r1, [r0] + add sp, sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._785: + .align 2, 0 +._784: + .word gUnknown_Debug_083F8815 + .word gUnknown_Debug_083F87D0 + .word gUnknown_Debug_083F87D8 + .word gUnknown_Debug_083F87E0 + .word 0x600fa56 + .word 0xa311 + .word gUnknown_Debug_083F87F4 + .word 0x600f256 + .word 0x8301 + .word 0x600f396 + .word gUnknown_Debug_083F8801 + .word 0x600f3d6 + .word 0x600f416 + .word 0x4000040 + .word 0x51ef + .word 0x699f + .word gTasks + .word debug_80C7934+1 + + thumb_func_end debug_80C777C + + thumb_func_start debug_80C7934 +debug_80C7934: + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + add sp, sp, #0xfffffff8 + mov r8, r0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r8, r0 + ldr r5, ._786 @ gUnknown_Debug_2038A20 + ldr r6, [r5] + ldrh r2, [r6] + lsl r0, r2, #0x3 + ldr r1, ._786 + 4 @ gTrainerFrontPicTable + add r0, r0, r1 + ldr r1, ._786 + 8 @ gTrainerFrontPicCoords + lsl r2, r2, #0x2 + add r2, r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, #0x1] + ldr r4, ._786 + 12 @ gUnknown_081FAF4C + ldr r3, [r4] + ldr r4, [r4, #0x4] + str r4, [sp] + ldrh r4, [r6] + str r4, [sp, #0x4] + bl DecompressPicFromTable_2 + ldr r0, [r5] + ldrh r0, [r0] + lsl r0, r0, #0x3 + ldr r1, ._786 + 16 @ gTrainerFrontPicPaletteTable + add r0, r0, r1 + bl LoadCompressedObjectPalette + ldr r0, [r5] + ldrh r0, [r0] + mov r1, #0x1 + bl GetMonSpriteTemplate_803C5A0 + ldr r0, ._786 + 20 @ gUnknown_02024E8C + mov r1, #0x28 + mov r2, #0x28 + mov r3, #0x0 + bl CreateSprite + ldr r1, [r5] + mov r6, #0x0 + strb r0, [r1, #0x2] + ldr r4, ._786 + 24 @ gSprites + ldr r2, [r5] + ldrb r1, [r2, #0x2] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r1, r4, #0 + add r1, r1, #0x1c + add r0, r0, r1 + ldr r1, ._786 + 28 @ debug_69 + str r1, [r0] + ldrb r0, [r2, #0x2] + lsl r1, r0, #0x4 + add r1, r1, r0 + lsl r1, r1, #0x2 + add r1, r1, r4 + ldrb r2, [r1, #0x5] + mov r0, #0xd + neg r0, r0 + and r0, r0, r2 + strb r0, [r1, #0x5] + ldr r0, [r5] + ldrh r0, [r0] + mov r1, #0x1a + mov r2, #0x5 + bl debug_80C376C + ldr r2, [r5] + ldrb r1, [r2, #0x2] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r4 + ldrb r0, [r0, #0x5] + lsr r0, r0, #0x4 + strb r0, [r2, #0x6] + ldr r0, [r5] + ldrb r0, [r0, #0x6] + lsl r0, r0, #0x5 + ldr r4, ._786 + 32 @ gPlttBufferUnfaded + add r0, r0, r4 + ldr r2, ._786 + 36 @ 0xffffff00 + add r1, r4, r2 + mov r2, #0x10 + bl CpuSet + ldr r0, [r5] + ldrb r0, [r0, #0x6] + lsl r0, r0, #0x5 + add r0, r0, r4 + ldr r1, ._786 + 40 @ gPlttBufferFaded + mov r2, #0x10 + bl CpuSet + ldr r1, ._786 + 44 @ gTasks + mov r2, r8 + lsl r0, r2, #0x2 + add r0, r0, r8 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._786 + 48 @ debug_80C7A54 + str r1, [r0] + ldr r0, [r5] + strb r6, [r0, #0x9] + add sp, sp, #0x8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 +._787: + .align 2, 0 +._786: + .word gUnknown_Debug_2038A20 + .word gTrainerFrontPicTable + .word gTrainerFrontPicCoords + .word gUnknown_081FAF4C + .word gTrainerFrontPicPaletteTable + .word gUnknown_02024E8C + .word gSprites + .word debug_69+1 + .word gPlttBufferUnfaded+0x200 + .word 0xffffff00 + .word gPlttBufferFaded+0x100 + .word gTasks + .word debug_80C7A54+1 + + thumb_func_end debug_80C7934 + + thumb_func_start debug_80C7A54 +debug_80C7A54: + push {r4, r5, r6, lr} + add r6, r0, #0 + lsl r6, r6, #0x18 + lsr r6, r6, #0x18 + ldr r4, ._788 @ gPlttBufferUnfaded + ldr r5, ._788 + 4 @ gUnknown_Debug_2038A20 + ldr r1, [r5] + add r1, r1, #0x10 + add r0, r4, #0 + mov r2, #0x10 + bl CpuSet + ldr r0, ._788 + 8 @ 0xffffff00 + add r4, r4, r0 + ldr r3, [r5] + ldrb r0, [r3, #0x7] + add r0, r0, #0x81 + lsl r0, r0, #0x1 + add r0, r0, r4 + ldrh r4, [r0] + mov r1, #0x1f + and r1, r1, r4 + ldrb r2, [r3, #0xc] + mov r0, #0x20 + neg r0, r0 + and r0, r0, r2 + orr r0, r0, r1 + strb r0, [r3, #0xc] + ldr r3, [r5] + mov r1, #0xf8 + lsl r1, r1, #0x2 + and r1, r1, r4 + ldrh r2, [r3, #0xc] + ldr r0, ._788 + 12 @ 0xfffffc1f + and r0, r0, r2 + orr r0, r0, r1 + strh r0, [r3, #0xc] + mov r1, #0xf8 + lsl r1, r1, #0x7 + and r1, r1, r4 + lsr r1, r1, #0x8 + ldrb r2, [r3, #0xd] + mov r0, #0x7d + neg r0, r0 + and r0, r0, r2 + orr r0, r0, r1 + strb r0, [r3, #0xd] + ldr r2, [r5] + ldrb r1, [r2, #0xd] + mov r0, #0x7f + and r0, r0, r1 + strb r0, [r2, #0xd] + ldr r0, [r5] + ldrb r0, [r0, #0x7] + add r0, r0, #0x1 + mov r1, #0xb + mov r2, #0xa + mov r3, #0x2 + bl debug_80C68CC + ldr r0, ._788 + 16 @ gUnknown_Debug_083F8813 + mov r1, #0xd + mov r2, #0xa + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0xe + mov r2, #0xa + mov r3, #0x4 + bl debug_80C68CC + ldr r1, ._788 + 20 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._788 + 24 @ debug_80C7B14 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 +._789: + .align 2, 0 +._788: + .word gPlttBufferUnfaded+0x100 + .word gUnknown_Debug_2038A20 + .word 0xffffff00 + .word 0xfffffc1f + .word gUnknown_Debug_083F8813 + .word gTasks + .word debug_80C7B14+1 + + thumb_func_end debug_80C7A54 + + thumb_func_start debug_80C7B14 +debug_80C7B14: + push {r4, r5, r6, lr} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + ldr r1, ._792 @ gMain + ldrh r3, [r1, #0x2e] + mov r0, #0x2 + and r0, r0, r3 + add r4, r1, #0 + cmp r0, #0 + beq ._790 @cond_branch + mov r0, #0x5 + bl PlaySE + mov r0, #0x1 + neg r0, r0 + mov r1, #0x0 + str r1, [sp] + mov r2, #0x0 + mov r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, ._792 + 4 @ debug_80C370C + bl SetMainCallback2 + ldr r1, ._792 + 8 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._792 + 12 @ debug_80C373C + str r1, [r0] + b ._821 +._793: + .align 2, 0 +._792: + .word gMain + .word debug_80C370C+1 + .word gTasks + .word debug_80C373C+1 +._790: + ldrh r1, [r4, #0x30] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._794 @cond_branch + ldr r4, ._796 @ gUnknown_Debug_2038A20 + ldr r0, [r4] + ldrh r1, [r0] + mov r0, #0x0 + b ._795 +._797: + .align 2, 0 +._796: + .word gUnknown_Debug_2038A20 +._794: + mov r0, #0x80 + lsl r0, r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._798 @cond_branch + ldr r4, ._800 @ gUnknown_Debug_2038A20 + ldr r0, [r4] + ldrh r1, [r0] + mov r0, #0x1 +._795: + bl debug_80C38B4 + ldr r1, [r4] + strh r0, [r1] + ldr r1, ._800 + 4 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._800 + 8 @ debug_80C7D44 + str r1, [r0] + b ._821 +._801: + .align 2, 0 +._800: + .word gUnknown_Debug_2038A20 + .word gTasks + .word debug_80C7D44+1 +._798: + mov r2, #0x1 + and r2, r2, r3 + cmp r2, #0 + beq ._802 @cond_branch + ldr r0, ._804 @ gUnknown_Debug_2038A20 + ldr r1, [r0] + mov r0, #0x1 + strb r0, [r1, #0x5] + ldr r1, ._804 + 4 @ 0x4000040 + ldr r2, ._804 + 8 @ 0x51ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r2, ._804 + 12 @ 0x4167 + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._804 + 16 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._804 + 20 @ debug_80C7DDC + str r1, [r0] + b ._821 +._805: + .align 2, 0 +._804: + .word gUnknown_Debug_2038A20 + .word 0x4000040 + .word 0x51ef + .word 0x4167 + .word gTasks + .word debug_80C7DDC+1 +._802: + mov r0, #0x10 + and r0, r0, r1 + ldr r3, ._809 @ gUnknown_Debug_2038A20 + cmp r0, #0 + beq ._807 @cond_branch + ldr r1, [r3] + ldrb r0, [r1, #0x7] + cmp r0, #0xd + bhi ._807 @cond_branch + lsl r0, r0, #0x1 + ldr r1, ._809 + 4 @ 0x5000102 + add r0, r0, r1 + strh r2, [r0] + ldr r1, [r3] + ldrb r0, [r1, #0x7] + add r0, r0, #0x1 + strb r0, [r1, #0x7] + b ._813 +._810: + .align 2, 0 +._809: + .word gUnknown_Debug_2038A20 + .word 0x5000102 +._807: + ldrh r1, [r4, #0x30] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._812 @cond_branch + ldr r1, [r3] + ldrb r0, [r1, #0x7] + cmp r0, #0 + beq ._812 @cond_branch + lsl r0, r0, #0x1 + ldr r2, ._814 @ 0x5000102 + add r0, r0, r2 + mov r1, #0x0 + strh r1, [r0] + ldr r1, [r3] + ldrb r0, [r1, #0x7] + sub r0, r0, #0x1 + strb r0, [r1, #0x7] + b ._813 +._815: + .align 2, 0 +._814: + .word 0x5000102 +._812: + ldrh r1, [r4, #0x2e] + mov r0, #0x8 + and r0, r0, r1 + cmp r0, #0 + beq ._816 @cond_branch + ldr r4, ._819 @ gUnknown_Debug_2038A20 + ldr r2, [r4] + ldrb r0, [r2, #0x9] + mov r1, #0x1 + eor r0, r0, r1 + strb r0, [r2, #0x9] + ldr r1, [r4] + ldrb r0, [r1, #0x9] + cmp r0, #0 + beq ._817 @cond_branch + ldrh r0, [r1] + mov r1, #0x0 + mov r2, #0x0 + bl GetMonSpritePalFromOtIdPersonality + ldr r1, [r4] + ldrb r1, [r1, #0x6] + lsl r1, r1, #0x14 + mov r2, #0x80 + lsl r2, r2, #0x11 + add r1, r1, r2 + lsr r1, r1, #0x10 + mov r2, #0x20 + bl LoadCompressedPalette + b ._818 +._820: + .align 2, 0 +._819: + .word gUnknown_Debug_2038A20 +._817: + ldrh r0, [r1] + mov r1, #0x0 + mov r2, #0x9 + bl GetMonSpritePalFromOtIdPersonality + ldr r1, [r4] + ldrb r1, [r1, #0x6] + lsl r1, r1, #0x14 + mov r2, #0x80 + lsl r2, r2, #0x11 + add r1, r1, r2 + lsr r1, r1, #0x10 + mov r2, #0x20 + bl LoadCompressedPalette +._818: + ldr r5, ._822 @ gUnknown_Debug_2038A20 + ldr r0, [r5] + ldrb r0, [r0, #0x6] + lsl r0, r0, #0x5 + ldr r4, ._822 + 4 @ gPlttBufferUnfaded + add r0, r0, r4 + ldr r2, ._822 + 8 @ 0xffffff00 + add r1, r4, r2 + mov r2, #0x10 + bl CpuSet + ldr r0, [r5] + ldrb r0, [r0, #0x6] + lsl r0, r0, #0x5 + add r0, r0, r4 + ldr r1, ._822 + 12 @ gPlttBufferFaded + mov r2, #0x10 + bl CpuSet +._813: + ldr r1, ._822 + 16 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._822 + 20 @ debug_80C7A54 + str r1, [r0] + b ._821 +._823: + .align 2, 0 +._822: + .word gUnknown_Debug_2038A20 + .word gPlttBufferUnfaded+0x200 + .word 0xffffff00 + .word gPlttBufferFaded+0x100 + .word gTasks + .word debug_80C7A54+1 +._816: + ldr r1, [r3] + ldrb r0, [r1, #0x8] + add r0, r0, #0x4 + strb r0, [r1, #0x8] + ldr r2, [r3] + ldrb r1, [r2, #0x8] + mov r0, #0x1f + and r0, r0, r1 + strb r0, [r2, #0x8] + ldr r0, [r3] + ldrb r1, [r0, #0x7] + lsl r1, r1, #0x1 + ldr r2, ._824 @ 0x5000142 + add r1, r1, r2 + ldr r2, ._824 + 4 @ gUnknown_Debug_083F8790 + ldrb r0, [r0, #0x8] + lsl r0, r0, #0x1 + add r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] +._821: + add sp, sp, #0x4 + pop {r4, r5, r6} + pop {r0} + bx r0 +._825: + .align 2, 0 +._824: + .word 0x5000142 + .word gUnknown_Debug_083F8790 + + thumb_func_end debug_80C7B14 + + thumb_func_start debug_80C7D44 +debug_80C7D44: + push {r4, r5, r6, lr} + add r5, r0, #0 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + ldr r6, ._826 @ gSprites + ldr r4, ._826 + 4 @ gUnknown_Debug_2038A20 + ldr r0, [r4] + ldrb r1, [r0, #0x2] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + ldrb r0, [r0, #0x5] + lsr r0, r0, #0x4 + bl GetSpritePaletteTagByPaletteNum + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FreeSpritePaletteByTag + ldr r0, [r4] + ldrb r1, [r0, #0x2] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + bl DestroySprite + ldr r0, [r4] + ldrb r1, [r0, #0x3] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + ldrb r0, [r0, #0x5] + lsr r0, r0, #0x4 + bl GetSpritePaletteTagByPaletteNum + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FreeSpritePaletteByTag + ldr r0, [r4] + ldrb r1, [r0, #0x3] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + bl DestroySprite + ldr r0, [r4] + ldrb r1, [r0, #0x4] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + bl sub_809D510 + ldr r1, ._826 + 8 @ gTasks + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._826 + 12 @ debug_80C7934 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 +._827: + .align 2, 0 +._826: + .word gSprites + .word gUnknown_Debug_2038A20 + .word gTasks + .word debug_80C7934+1 + + thumb_func_end debug_80C7D44 + + thumb_func_start debug_80C7DDC +debug_80C7DDC: + push {r4, r5, r6, r7, lr} + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + ldr r0, ._830 @ gMain + ldrh r2, [r0, #0x2e] + mov r1, #0x1 + and r1, r1, r2 + add r3, r0, #0 + cmp r1, #0 + beq ._828 @cond_branch + ldr r0, ._830 + 4 @ gUnknown_Debug_2038A20 + ldr r1, [r0] + mov r0, #0x0 + strb r0, [r1, #0x5] + ldr r1, ._830 + 8 @ 0x4000040 + ldr r2, ._830 + 12 @ 0x51ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r2, ._830 + 16 @ 0x699f + add r0, r2, #0 + strh r0, [r1] + b ._829 +._831: + .align 2, 0 +._830: + .word gMain + .word gUnknown_Debug_2038A20 + .word 0x4000040 + .word 0x51ef + .word 0x699f +._828: + mov r0, #0x2 + and r0, r0, r2 + cmp r0, #0 + beq ._832 @cond_branch + ldr r6, ._834 @ gUnknown_Debug_2038A20 + ldr r0, [r6] + strb r1, [r0, #0x5] + ldr r1, ._834 + 4 @ 0x4000040 + ldr r2, ._834 + 8 @ 0x51ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r2, ._834 + 12 @ 0x699f + add r0, r2, #0 + strh r0, [r1] + ldr r0, [r6] + add r0, r0, #0x10 + ldr r4, ._834 + 16 @ gPlttBufferUnfaded + add r1, r4, #0 + mov r2, #0x10 + bl CpuSet + ldr r0, [r6] + add r0, r0, #0x10 + ldr r5, ._834 + 20 @ gPlttBufferFaded + add r1, r5, #0 + mov r2, #0x10 + bl CpuSet + ldr r1, [r6] + add r0, r1, #0 + add r0, r0, #0x10 + ldrb r1, [r1, #0x6] + lsl r1, r1, #0x5 + mov r2, #0x80 + lsl r2, r2, #0x1 + add r4, r4, r2 + add r1, r1, r4 + mov r2, #0x10 + bl CpuSet + ldr r1, [r6] + add r0, r1, #0 + add r0, r0, #0x10 + ldrb r1, [r1, #0x6] + lsl r1, r1, #0x5 + mov r2, #0x80 + lsl r2, r2, #0x1 + add r5, r5, r2 + add r1, r1, r5 + mov r2, #0x10 + bl CpuSet +._829: + ldr r1, ._834 + 24 @ gTasks + lsl r0, r7, #0x2 + add r0, r0, r7 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._834 + 28 @ debug_80C7A54 + str r1, [r0] + b ._871 +._835: + .align 2, 0 +._834: + .word gUnknown_Debug_2038A20 + .word 0x4000040 + .word 0x51ef + .word 0x699f + .word gPlttBufferUnfaded+0x100 + .word gPlttBufferFaded+0x100 + .word gTasks + .word debug_80C7A54+1 +._832: + ldrh r1, [r3, #0x30] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._837 @cond_branch + ldr r0, ._839 @ gUnknown_Debug_2038A20 + ldr r1, [r0] + ldrb r0, [r1, #0xa] + cmp r0, #0x1 + bhi ._837 @cond_branch + add r0, r0, #0x1 + strb r0, [r1, #0xa] + b ._871 +._840: + .align 2, 0 +._839: + .word gUnknown_Debug_2038A20 +._837: + ldrh r1, [r3, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._842 @cond_branch + ldr r0, ._844 @ gUnknown_Debug_2038A20 + ldr r1, [r0] + ldrb r0, [r1, #0xa] + cmp r0, #0 + beq ._842 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1, #0xa] + b ._871 +._845: + .align 2, 0 +._844: + .word gUnknown_Debug_2038A20 +._842: + ldrh r1, [r3, #0x30] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._846 @cond_branch + ldr r0, ._851 @ gUnknown_Debug_2038A20 + ldr r2, [r0] + ldrb r0, [r2, #0xa] + cmp r0, #0x1 + beq ._847 @cond_branch + cmp r0, #0x1 + bgt ._848 @cond_branch + cmp r0, #0 + beq ._849 @cond_branch + b ._871 +._852: + .align 2, 0 +._851: + .word gUnknown_Debug_2038A20 +._848: + cmp r0, #0x2 + beq ._853 @cond_branch + b ._871 +._849: + ldrb r3, [r2, #0xc] + lsl r1, r3, #0x1b + lsr r0, r1, #0x1b + cmp r0, #0x1e + bhi ._878 @cond_branch + add r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + mov r1, #0x20 + neg r1, r1 + and r1, r1, r3 + orr r1, r1, r0 + strb r1, [r2, #0xc] + b ._878 +._847: + ldrh r3, [r2, #0xc] + lsl r1, r3, #0x16 + lsr r0, r1, #0x1b + cmp r0, #0x1e + bhi ._878 @cond_branch + add r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + lsl r0, r0, #0x5 + ldr r1, ._859 @ 0xfffffc1f + and r1, r1, r3 + orr r1, r1, r0 + strh r1, [r2, #0xc] + b ._878 +._860: + .align 2, 0 +._859: + .word 0xfffffc1f +._853: + ldrb r3, [r2, #0xd] + lsl r1, r3, #0x19 + lsr r0, r1, #0x1b + cmp r0, #0x1e + bhi ._878 @cond_branch + add r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + lsl r0, r0, #0x2 + mov r1, #0x7d + neg r1, r1 + and r1, r1, r3 + orr r1, r1, r0 + strb r1, [r2, #0xd] + b ._878 +._846: + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._871 @cond_branch + ldr r0, ._868 @ gUnknown_Debug_2038A20 + ldr r3, [r0] + ldrb r0, [r3, #0xa] + cmp r0, #0x1 + beq ._864 @cond_branch + cmp r0, #0x1 + bgt ._865 @cond_branch + cmp r0, #0 + beq ._866 @cond_branch + b ._871 +._869: + .align 2, 0 +._868: + .word gUnknown_Debug_2038A20 +._865: + cmp r0, #0x2 + beq ._870 @cond_branch + b ._871 +._866: + ldrb r2, [r3, #0xc] + mov r0, #0x1f + and r0, r0, r2 + cmp r0, #0 + beq ._878 @cond_branch + lsl r0, r2, #0x1b + lsr r0, r0, #0x1b + sub r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + mov r1, #0x20 + neg r1, r1 + and r1, r1, r2 + orr r1, r1, r0 + strb r1, [r3, #0xc] + b ._878 +._864: + ldrh r2, [r3, #0xc] + mov r0, #0xf8 + lsl r0, r0, #0x2 + and r0, r0, r2 + cmp r0, #0 + beq ._878 @cond_branch + lsl r0, r2, #0x16 + lsr r0, r0, #0x1b + sub r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + lsl r0, r0, #0x5 + ldr r1, ._876 @ 0xfffffc1f + and r1, r1, r2 + orr r1, r1, r0 + strh r1, [r3, #0xc] + b ._878 +._877: + .align 2, 0 +._876: + .word 0xfffffc1f +._870: + ldrb r2, [r3, #0xd] + mov r0, #0x7c + and r0, r0, r2 + cmp r0, #0 + beq ._878 @cond_branch + lsl r0, r2, #0x19 + lsr r0, r0, #0x1b + sub r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + lsl r0, r0, #0x2 + mov r1, #0x7d + neg r1, r1 + and r1, r1, r2 + orr r1, r1, r0 + strb r1, [r3, #0xd] +._878: + ldr r0, ._879 @ gTasks + lsl r1, r7, #0x2 + add r1, r1, r7 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._879 + 4 @ debug_80C802C + str r0, [r1] +._871: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._880: + .align 2, 0 +._879: + .word gTasks + .word debug_80C802C+1 + + thumb_func_end debug_80C7DDC + + thumb_func_start debug_80C802C +debug_80C802C: + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + add r5, r0, #0 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + ldr r0, ._881 @ gUnknown_Debug_2038A20 + ldr r3, [r0] + ldrb r0, [r3, #0xc] + lsl r0, r0, #0x1b + lsr r0, r0, #0x1b + ldrh r2, [r3, #0xc] + mov r1, #0xf8 + lsl r1, r1, #0x2 + and r1, r1, r2 + add r0, r0, r1 + ldrb r1, [r3, #0xd] + lsl r1, r1, #0x19 + lsr r1, r1, #0x1b + lsl r1, r1, #0xa + add r0, r0, r1 + ldr r6, ._881 + 4 @ gPlttBufferUnfaded + ldrb r1, [r3, #0x7] + add r1, r1, #0x81 + lsl r1, r1, #0x1 + add r1, r1, r6 + strh r0, [r1] + ldr r1, ._881 + 8 @ gPlttBufferFaded + mov r8, r1 + ldrb r1, [r3, #0x7] + add r1, r1, #0x81 + lsl r1, r1, #0x1 + add r1, r1, r8 + strh r0, [r1] + ldrb r1, [r3, #0x6] + lsl r1, r1, #0x4 + ldrb r2, [r3, #0x7] + ldr r4, ._881 + 12 @ 0x101 + add r2, r2, r4 + add r1, r1, r2 + lsl r1, r1, #0x1 + add r1, r1, r6 + strh r0, [r1] + ldrb r1, [r3, #0x6] + lsl r1, r1, #0x4 + ldrb r2, [r3, #0x7] + add r2, r2, r4 + add r1, r1, r2 + lsl r1, r1, #0x1 + add r1, r1, r8 + strh r0, [r1] + mov r1, #0xe + mov r2, #0xa + mov r3, #0x4 + bl debug_80C68CC + ldr r1, ._881 + 16 @ gTasks + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._881 + 20 @ debug_80C7DDC + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 +._882: + .align 2, 0 +._881: + .word gUnknown_Debug_2038A20 + .word gPlttBufferUnfaded + .word gPlttBufferFaded + .word 0x101 + .word gTasks + .word debug_80C7DDC+1 + + thumb_func_end debug_80C802C + + .align 2, 0 + +.endif diff --git a/asm/water.s b/asm/water.s index 45fb7f82a..2f0ebb8f8 100644 --- a/asm/water.s +++ b/asm/water.s @@ -2053,7 +2053,7 @@ sub_80D4AD0: @ 80D4AD0 strh r1, [r0, 0x36] ldrh r1, [r6, 0x1A] strh r1, [r0, 0x38] - bl sub_80786EC + bl InitAnimSpriteTranslationOverDuration adds r5, 0x1C adds r4, r5 ldr r0, _080D4B38 @ =sub_80D4B3C @@ -2075,7 +2075,7 @@ _080D4B38: .4byte sub_80D4B3C sub_80D4B3C: @ 80D4B3C push {r4-r6,lr} adds r6, r0, 0 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _080D4B96 @@ -2110,7 +2110,7 @@ sub_80D4B3C: @ 80D4B3C mvns r1, r1 strh r1, [r6, 0x38] adds r0, r6, 0 - bl sub_80786EC + bl InitAnimSpriteTranslationOverDuration ldr r0, _080D4BA0 @ =sub_80D4BA4 str r0, [r6, 0x1C] _080D4B96: @@ -2126,7 +2126,7 @@ _080D4BA0: .4byte sub_80D4BA4 sub_80D4BA4: @ 80D4BA4 push {r4-r6,lr} adds r5, r0, 0 - bl sub_8078718 + bl TranslateAnimSpriteLinearAndSine lsls r0, 24 cmp r0, 0 beq _080D4BE0 @@ -2264,7 +2264,7 @@ sub_80D4CA4: @ 80D4CA4 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x1 - bl sub_80787B0 + bl InitAnimSpritePos ldr r5, _080D4CE0 @ =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 |