summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_1.s1
-rw-r--r--asm/battle_9.s171
-rw-r--r--asm/battle_anim_812C144.s76
-rw-r--r--asm/battle_anim_813F0F4.s78
-rw-r--r--asm/current.s14
-rw-r--r--asm/cute_sketch.s1
-rw-r--r--asm/dark.s2013
-rw-r--r--asm/fight.s1749
-rw-r--r--asm/flying.s30
-rw-r--r--asm/ghost.s16
-rw-r--r--asm/ground.s30
-rw-r--r--asm/ice.s48
-rw-r--r--asm/nakamura_debug_menu.s4686
-rw-r--r--asm/nohara_debug_menu.s2198
-rw-r--r--asm/normal.s50
-rw-r--r--asm/pokemon_storage_system.s144
-rw-r--r--asm/taya_debug_window.s2054
-rw-r--r--asm/unk_debug_menu_3.s747
-rw-r--r--asm/unk_text_8095904.s256
-rw-r--r--asm/watanabe_debug_menu.s9578
-rw-r--r--asm/water.s10
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
diff --git a/asm/ice.s b/asm/ice.s
index 032da59c3..51140d998 100644
--- a/asm/ice.s
+++ b/asm/ice.s
@@ -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