summaryrefslogtreecommitdiff
path: root/asm/battle_1.s
diff options
context:
space:
mode:
authorJaceCearK1 <JaceCearK1@users.noreply.github.com>2017-07-01 21:04:18 +0200
committerGitHub <noreply@github.com>2017-07-01 21:04:18 +0200
commit0dd804a99e5455a0eac8ff6ed87d9de16c7380b7 (patch)
tree7b3567978b63ee6548a7b945e075ea8ba37bef51 /asm/battle_1.s
parentf1344efd2aff92292f58f7323bd9297a38fe9b02 (diff)
parent8d82578d3a101b06f9d2ced31738021007c4e533 (diff)
Merge pull request #1 from pret/master
Update fork to match main fork.
Diffstat (limited to 'asm/battle_1.s')
-rw-r--r--asm/battle_1.s2136
1 files changed, 2136 insertions, 0 deletions
diff --git a/asm/battle_1.s b/asm/battle_1.s
new file mode 100644
index 000000000..44d0b245f
--- /dev/null
+++ b/asm/battle_1.s
@@ -0,0 +1,2136 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_800D42C
+unref_sub_800D42C: @ 800D42C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ mov r9, r0
+ str r1, [sp]
+ str r2, [sp, 0x4]
+ adds r5, r3, 0
+ movs r0, 0x1
+ mov r1, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _0800D44C
+ b _0800D5E4
+_0800D44C:
+ asrs r0, r1, 1
+ adds r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ movs r0, 0
+ ldr r2, [sp]
+ cmp r0, r2
+ blt _0800D460
+ b _0800D674
+_0800D460:
+ movs r4, 0x8
+ subs r1, r4, r1
+ str r1, [sp, 0x10]
+_0800D466:
+ movs r7, 0
+ adds r0, 0x1
+ str r0, [sp, 0x14]
+ ldr r0, [sp, 0x10]
+ cmp r7, r0
+ bge _0800D4E2
+ ldr r1, [sp, 0x8]
+ lsls r1, 8
+ str r1, [sp, 0x18]
+ movs r2, 0
+ mov r10, r2
+ mov r0, r9
+ movs r4, 0x8
+ subs r0, r4, r0
+ str r0, [sp, 0xC]
+_0800D484:
+ movs r3, 0
+ asrs r0, r7, 1
+ adds r1, r7, 0
+ movs r2, 0x1
+ ands r1, r2
+ str r1, [sp, 0x20]
+ lsls r0, 8
+ mov r8, r0
+ mov r12, r5
+_0800D496:
+ lsls r1, r3, 5
+ ldr r4, [sp, 0x18]
+ adds r0, r5, r4
+ adds r0, r1
+ mov r1, r8
+ adds r2, r0, r1
+ mov r1, r12
+ add r1, r8
+ movs r6, 0xF
+_0800D4A8:
+ ldr r4, [sp, 0x20]
+ cmp r4, 0
+ bne _0800D4B8
+ strb r4, [r1]
+ add r4, sp, 0x20
+ ldrb r4, [r4]
+ strb r4, [r2, 0x10]
+ b _0800D4C6
+_0800D4B8:
+ mov r0, r10
+ strb r0, [r1, 0x10]
+ movs r4, 0x80
+ lsls r4, 1
+ adds r4, r2, r4
+ str r4, [sp, 0x1C]
+ strb r0, [r4]
+_0800D4C6:
+ adds r2, 0x1
+ adds r1, 0x1
+ subs r6, 0x1
+ cmp r6, 0
+ bge _0800D4A8
+ movs r0, 0x20
+ add r12, r0
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _0800D496
+ adds r7, 0x1
+ ldr r1, [sp, 0xC]
+ cmp r7, r1
+ blt _0800D484
+_0800D4E2:
+ movs r7, 0
+ movs r2, 0
+_0800D4E6:
+ movs r6, 0
+ adds r4, r7, 0x1
+ mov r8, r4
+ lsls r4, r7, 5
+_0800D4EE:
+ adds r0, r6, 0x1
+ mov r10, r0
+ lsls r1, r6, 8
+ adds r0, r1, 0
+ adds r0, 0xC0
+ adds r0, r5, r0
+ adds r0, r4
+ adds r1, r5, r1
+ adds r1, r4
+ movs r3, 0x1F
+_0800D502:
+ strb r2, [r1]
+ strb r2, [r0]
+ adds r0, 0x1
+ adds r1, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0800D502
+ mov r6, r10
+ cmp r6, 0x7
+ ble _0800D4EE
+ mov r7, r8
+ cmp r7, 0x1
+ ble _0800D4E6
+ mov r1, r9
+ cmp r1, 0x5
+ bne _0800D528
+ movs r2, 0x90
+ lsls r2, 1
+ adds r5, r2
+_0800D528:
+ movs r7, 0
+ cmp r7, r9
+ bge _0800D5BE
+_0800D52E:
+ movs r3, 0
+ adds r7, 0x1
+ mov r8, r7
+ cmp r3, r9
+ bge _0800D59E
+_0800D538:
+ adds r3, 0x1
+ mov r10, r3
+ ldr r4, [sp, 0x4]
+ adds r4, 0x20
+ adds r7, r5, 0
+ adds r7, 0x20
+ movs r0, 0x12
+ adds r0, r5
+ mov r12, r0
+ ldr r2, [sp, 0x4]
+ adds r3, r5, 0
+ movs r6, 0x3
+_0800D550:
+ ldrb r0, [r2]
+ mov r1, r12
+ strb r0, [r1]
+ ldrb r0, [r2, 0x1]
+ strb r0, [r1, 0x1]
+ ldrb r0, [r2, 0x2]
+ strb r0, [r1, 0x1E]
+ ldrb r0, [r2, 0x3]
+ strb r0, [r1, 0x1F]
+ movs r0, 0x81
+ lsls r0, 1
+ adds r1, r3, r0
+ ldrb r0, [r2, 0x10]
+ strb r0, [r1]
+ ldr r0, _0800D5A8 @ =0x00000103
+ adds r1, r3, r0
+ ldrb r0, [r2, 0x11]
+ strb r0, [r1]
+ movs r0, 0x90
+ lsls r0, 1
+ adds r1, r3, r0
+ ldrb r0, [r2, 0x12]
+ strb r0, [r1]
+ ldr r0, _0800D5AC @ =0x00000121
+ adds r1, r3, r0
+ ldrb r0, [r2, 0x13]
+ strb r0, [r1]
+ movs r1, 0x4
+ add r12, r1
+ adds r2, 0x4
+ adds r3, 0x4
+ subs r6, 0x1
+ cmp r6, 0
+ bge _0800D550
+ str r4, [sp, 0x4]
+ adds r5, r7, 0
+ mov r3, r10
+ cmp r3, r9
+ blt _0800D538
+_0800D59E:
+ mov r2, r9
+ cmp r2, 0x7
+ bne _0800D5B0
+ adds r5, 0x20
+ b _0800D5B8
+ .align 2, 0
+_0800D5A8: .4byte 0x00000103
+_0800D5AC: .4byte 0x00000121
+_0800D5B0:
+ mov r4, r9
+ cmp r4, 0x5
+ bne _0800D5B8
+ adds r5, 0x60
+_0800D5B8:
+ mov r7, r8
+ cmp r7, r9
+ blt _0800D52E
+_0800D5BE:
+ mov r0, r9
+ cmp r0, 0x7
+ bne _0800D5CC
+ movs r1, 0x80
+ lsls r1, 1
+ adds r5, r1
+ b _0800D5D8
+_0800D5CC:
+ mov r2, r9
+ cmp r2, 0x5
+ bne _0800D5D8
+ movs r4, 0xF0
+ lsls r4, 1
+ adds r5, r4
+_0800D5D8:
+ ldr r0, [sp, 0x14]
+ ldr r1, [sp]
+ cmp r0, r1
+ bge _0800D5E2
+ b _0800D466
+_0800D5E2:
+ b _0800D674
+_0800D5E4:
+ movs r6, 0
+ ldr r2, [sp]
+ cmp r6, r2
+ bge _0800D674
+_0800D5EC:
+ adds r6, 0x1
+ mov r10, r6
+ mov r4, r9
+ cmp r4, 0x6
+ bne _0800D604
+ movs r0, 0
+ movs r3, 0xFF
+_0800D5FA:
+ strb r0, [r5]
+ adds r5, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0800D5FA
+_0800D604:
+ movs r7, 0
+ cmp r7, r9
+ bge _0800D658
+_0800D60A:
+ adds r7, 0x1
+ mov r8, r7
+ mov r1, r9
+ lsls r0, r1, 5
+ cmp r1, 0x6
+ bne _0800D624
+ movs r1, 0
+ movs r3, 0x1F
+_0800D61A:
+ strb r1, [r5]
+ adds r5, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0800D61A
+_0800D624:
+ adds r1, r0, 0
+ cmp r1, 0
+ ble _0800D63E
+ adds r3, r1, 0
+_0800D62C:
+ ldr r2, [sp, 0x4]
+ ldrb r0, [r2]
+ strb r0, [r5]
+ adds r2, 0x1
+ str r2, [sp, 0x4]
+ adds r5, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bne _0800D62C
+_0800D63E:
+ mov r4, r9
+ cmp r4, 0x6
+ bne _0800D652
+ movs r0, 0
+ movs r3, 0x1F
+_0800D648:
+ strb r0, [r5]
+ adds r5, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0800D648
+_0800D652:
+ mov r7, r8
+ cmp r7, r9
+ blt _0800D60A
+_0800D658:
+ mov r0, r9
+ cmp r0, 0x6
+ bne _0800D66C
+ movs r0, 0
+ movs r3, 0xFF
+_0800D662:
+ strb r0, [r5]
+ adds r5, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0800D662
+_0800D66C:
+ mov r6, r10
+ ldr r1, [sp]
+ cmp r6, r1
+ blt _0800D5EC
+_0800D674:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_800D42C
+
+ thumb_func_start unref_sub_800D684
+unref_sub_800D684: @ 800D684
+ push {lr}
+ bl ResetSpriteData
+ ldr r0, _0800D6B8 @ =gSpriteTemplate_81F96D0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0800D6BC @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, _0800D6C0 @ =sub_800D6C4
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800D6B8: .4byte gSpriteTemplate_81F96D0
+_0800D6BC: .4byte gSprites
+_0800D6C0: .4byte sub_800D6C4
+ thumb_func_end unref_sub_800D684
+
+ thumb_func_start sub_800D6C4
+sub_800D6C4: @ 800D6C4
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800D6C4
+
+ thumb_func_start sub_800D6D4
+sub_800D6D4: @ 800D6D4
+ push {r4,r5,lr}
+ ldr r3, _0800D72C @ =0x04000208
+ ldrh r2, [r3]
+ movs r5, 0
+ strh r5, [r3]
+ ldr r4, _0800D730 @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r1, _0800D734 @ =REG_DISPSTAT
+ movs r0, 0x8
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r2, 0x98
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0800D738 @ =0x00009c04
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0800D73C @ =0x00005e05
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0800D740 @ =0x00005a0b
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0800D744 @ =REG_BLDCNT
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ subs r1, 0xE
+ ldr r2, _0800D748 @ =0x0000bf40
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800D72C: .4byte 0x04000208
+_0800D730: .4byte 0x04000200
+_0800D734: .4byte REG_DISPSTAT
+_0800D738: .4byte 0x00009c04
+_0800D73C: .4byte 0x00005e05
+_0800D740: .4byte 0x00005a0b
+_0800D744: .4byte REG_BLDCNT
+_0800D748: .4byte 0x0000bf40
+ thumb_func_end sub_800D6D4
+
+ thumb_func_start sub_800D74C
+sub_800D74C: @ 800D74C
+ push {r4,lr}
+ movs r0, 0x12
+ bl SetTextWindowBaseTileNum
+ ldr r4, _0800D79C @ =gUnknown_03004210
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl LoadTextWindowGraphics_OverridePalSlot
+ movs r0, 0x22
+ bl SetTextWindowBaseTileNum
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl LoadTextWindowGraphics_OverridePalSlot
+ ldr r3, _0800D7A0 @ =gPlttBufferUnfaded
+ adds r0, r3, 0
+ adds r0, 0xB8
+ ldr r1, _0800D7A4 @ =0x00007fe0
+ strh r1, [r0]
+ adds r2, r3, 0
+ adds r2, 0xBA
+ ldr r1, _0800D7A8 @ =0x00002529
+ strh r1, [r2]
+ adds r2, 0x2
+ ldr r1, _0800D7AC @ =0x00007fff
+ strh r1, [r2]
+ adds r2, 0x2
+ ldr r1, _0800D7B0 @ =0x0000675a
+ strh r1, [r2]
+ ldr r1, _0800D7B4 @ =gPlttBufferFaded + 0xB8
+ movs r2, 0x4
+ bl CpuSet
+ bl sub_8032A38
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800D79C: .4byte gUnknown_03004210
+_0800D7A0: .4byte gPlttBufferUnfaded
+_0800D7A4: .4byte 0x00007fe0
+_0800D7A8: .4byte 0x00002529
+_0800D7AC: .4byte 0x00007fff
+_0800D7B0: .4byte 0x0000675a
+_0800D7B4: .4byte gPlttBufferFaded + 0xB8
+ thumb_func_end sub_800D74C
+
+ thumb_func_start sub_800D7B8
+sub_800D7B8: @ 800D7B8
+ push {r4,r5,lr}
+ ldr r0, _0800D7DC @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ ldr r0, _0800D7E0 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ beq _0800D7F8
+ ldr r0, _0800D7E4 @ =gBattleTerrainTiles_Building
+ ldr r1, _0800D7E8 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D7EC @ =gBattleTerrainTilemap_Building
+ ldr r1, _0800D7F0 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D7F4 @ =gBattleTerrainPalette_BattleTower
+ b _0800DA66
+ .align 2, 0
+_0800D7DC: .4byte gBattleTypeFlags
+_0800D7E0: .4byte 0x00000902
+_0800D7E4: .4byte gBattleTerrainTiles_Building
+_0800D7E8: .4byte 0x06008000
+_0800D7EC: .4byte gBattleTerrainTilemap_Building
+_0800D7F0: .4byte 0x0600d000
+_0800D7F4: .4byte gBattleTerrainPalette_BattleTower
+_0800D7F8:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0800D860
+ ldr r0, _0800D820 @ =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0800D838
+ ldr r0, _0800D824 @ =gBattleTerrainTiles_Cave
+ ldr r1, _0800D828 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D82C @ =gBattleTerrainTilemap_Cave
+ ldr r1, _0800D830 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D834 @ =gBattleTerrainPalette_Groudon
+ b _0800DA66
+ .align 2, 0
+_0800D820: .4byte gGameVersion
+_0800D824: .4byte gBattleTerrainTiles_Cave
+_0800D828: .4byte 0x06008000
+_0800D82C: .4byte gBattleTerrainTilemap_Cave
+_0800D830: .4byte 0x0600d000
+_0800D834: .4byte gBattleTerrainPalette_Groudon
+_0800D838:
+ ldr r0, _0800D84C @ =gBattleTerrainTiles_Water
+ ldr r1, _0800D850 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D854 @ =gBattleTerrainTilemap_Water
+ ldr r1, _0800D858 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D85C @ =gBattleTerrainPalette_Kyogre
+ b _0800DA66
+ .align 2, 0
+_0800D84C: .4byte gBattleTerrainTiles_Water
+_0800D850: .4byte 0x06008000
+_0800D854: .4byte gBattleTerrainTilemap_Water
+_0800D858: .4byte 0x0600d000
+_0800D85C: .4byte gBattleTerrainPalette_Kyogre
+_0800D860:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0800D8D8
+ ldr r2, _0800D890 @ =gTrainers
+ ldr r0, _0800D894 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x19
+ bne _0800D8AC
+ ldr r0, _0800D898 @ =gBattleTerrainTiles_Building
+ ldr r1, _0800D89C @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D8A0 @ =gBattleTerrainTilemap_Building
+ ldr r1, _0800D8A4 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D8A8 @ =gBattleTerrainPalette_BuildingLeader
+ b _0800DA66
+ .align 2, 0
+_0800D890: .4byte gTrainers
+_0800D894: .4byte gTrainerBattleOpponent
+_0800D898: .4byte gBattleTerrainTiles_Building
+_0800D89C: .4byte 0x06008000
+_0800D8A0: .4byte gBattleTerrainTilemap_Building
+_0800D8A4: .4byte 0x0600d000
+_0800D8A8: .4byte gBattleTerrainPalette_BuildingLeader
+_0800D8AC:
+ cmp r0, 0x20
+ bne _0800D8D8
+ ldr r0, _0800D8C4 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800D8C8 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D8CC @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800D8D0 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D8D4 @ =gBattleTerrainPalette_StadiumSteven
+ b _0800DA66
+ .align 2, 0
+_0800D8C4: .4byte gBattleTerrainTiles_Stadium
+_0800D8C8: .4byte 0x06008000
+_0800D8CC: .4byte gBattleTerrainTilemap_Stadium
+_0800D8D0: .4byte 0x0600d000
+_0800D8D4: .4byte gBattleTerrainPalette_StadiumSteven
+_0800D8D8:
+ bl sav1_map_get_battletype
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bls _0800D8E6
+ b _0800DA9E
+_0800D8E6:
+ lsls r0, 2
+ ldr r1, _0800D8F0 @ =_0800D8F4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800D8F0: .4byte _0800D8F4
+ .align 2, 0
+_0800D8F4:
+ .4byte _0800D918
+ .4byte _0800D964
+ .4byte _0800D98C
+ .4byte _0800D9B4
+ .4byte _0800D9DC
+ .4byte _0800DA04
+ .4byte _0800DA2C
+ .4byte _0800DA54
+ .4byte _0800DA84
+_0800D918:
+ ldr r4, _0800D954 @ =gBattleTerrainTable
+ ldr r5, _0800D958 @ =gBattleTerrain
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ldr r1, _0800D95C @ =0x06008000
+ bl LZDecompressVram
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _0800D960 @ =0x0600d000
+ bl LZDecompressVram
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x10
+ adds r0, r4
+ ldr r0, [r0]
+ b _0800DA66
+ .align 2, 0
+_0800D954: .4byte gBattleTerrainTable
+_0800D958: .4byte gBattleTerrain
+_0800D95C: .4byte 0x06008000
+_0800D960: .4byte 0x0600d000
+_0800D964:
+ ldr r0, _0800D978 @ =gBattleTerrainTiles_Building
+ ldr r1, _0800D97C @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D980 @ =gBattleTerrainTilemap_Building
+ ldr r1, _0800D984 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D988 @ =gBattleTerrainPalette_BuildingGym
+ b _0800DA66
+ .align 2, 0
+_0800D978: .4byte gBattleTerrainTiles_Building
+_0800D97C: .4byte 0x06008000
+_0800D980: .4byte gBattleTerrainTilemap_Building
+_0800D984: .4byte 0x0600d000
+_0800D988: .4byte gBattleTerrainPalette_BuildingGym
+_0800D98C:
+ ldr r0, _0800D9A0 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800D9A4 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D9A8 @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800D9AC @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D9B0 @ =gBattleTerrainPalette_StadiumMagma
+ b _0800DA66
+ .align 2, 0
+_0800D9A0: .4byte gBattleTerrainTiles_Stadium
+_0800D9A4: .4byte 0x06008000
+_0800D9A8: .4byte gBattleTerrainTilemap_Stadium
+_0800D9AC: .4byte 0x0600d000
+_0800D9B0: .4byte gBattleTerrainPalette_StadiumMagma
+_0800D9B4:
+ ldr r0, _0800D9C8 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800D9CC @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D9D0 @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800D9D4 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D9D8 @ =gBattleTerrainPalette_StadiumAqua
+ b _0800DA66
+ .align 2, 0
+_0800D9C8: .4byte gBattleTerrainTiles_Stadium
+_0800D9CC: .4byte 0x06008000
+_0800D9D0: .4byte gBattleTerrainTilemap_Stadium
+_0800D9D4: .4byte 0x0600d000
+_0800D9D8: .4byte gBattleTerrainPalette_StadiumAqua
+_0800D9DC:
+ ldr r0, _0800D9F0 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800D9F4 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D9F8 @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800D9FC @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800DA00 @ =gBattleTerrainPalette_StadiumSidney
+ b _0800DA66
+ .align 2, 0
+_0800D9F0: .4byte gBattleTerrainTiles_Stadium
+_0800D9F4: .4byte 0x06008000
+_0800D9F8: .4byte gBattleTerrainTilemap_Stadium
+_0800D9FC: .4byte 0x0600d000
+_0800DA00: .4byte gBattleTerrainPalette_StadiumSidney
+_0800DA04:
+ ldr r0, _0800DA18 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800DA1C @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800DA20 @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800DA24 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800DA28 @ =gBattleTerrainPalette_StadiumPhoebe
+ b _0800DA66
+ .align 2, 0
+_0800DA18: .4byte gBattleTerrainTiles_Stadium
+_0800DA1C: .4byte 0x06008000
+_0800DA20: .4byte gBattleTerrainTilemap_Stadium
+_0800DA24: .4byte 0x0600d000
+_0800DA28: .4byte gBattleTerrainPalette_StadiumPhoebe
+_0800DA2C:
+ ldr r0, _0800DA40 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800DA44 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800DA48 @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800DA4C @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800DA50 @ =gBattleTerrainPalette_StadiumGlacia
+ b _0800DA66
+ .align 2, 0
+_0800DA40: .4byte gBattleTerrainTiles_Stadium
+_0800DA44: .4byte 0x06008000
+_0800DA48: .4byte gBattleTerrainTilemap_Stadium
+_0800DA4C: .4byte 0x0600d000
+_0800DA50: .4byte gBattleTerrainPalette_StadiumGlacia
+_0800DA54:
+ ldr r0, _0800DA70 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800DA74 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800DA78 @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800DA7C @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800DA80 @ =gBattleTerrainPalette_StadiumDrake
+_0800DA66:
+ movs r1, 0x20
+ movs r2, 0x60
+ bl LoadCompressedPalette
+ b _0800DA9E
+ .align 2, 0
+_0800DA70: .4byte gBattleTerrainTiles_Stadium
+_0800DA74: .4byte 0x06008000
+_0800DA78: .4byte gBattleTerrainTilemap_Stadium
+_0800DA7C: .4byte 0x0600d000
+_0800DA80: .4byte gBattleTerrainPalette_StadiumDrake
+_0800DA84:
+ ldr r0, _0800DAA4 @ =gBattleTerrainTiles_Building
+ ldr r1, _0800DAA8 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800DAAC @ =gBattleTerrainTilemap_Building
+ ldr r1, _0800DAB0 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800DAB4 @ =gBattleTerrainPalette_BattleTower
+ movs r1, 0x20
+ movs r2, 0x60
+ bl LoadCompressedPalette
+_0800DA9E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800DAA4: .4byte gBattleTerrainTiles_Building
+_0800DAA8: .4byte 0x06008000
+_0800DAAC: .4byte gBattleTerrainTilemap_Building
+_0800DAB0: .4byte 0x0600d000
+_0800DAB4: .4byte gBattleTerrainPalette_BattleTower
+ thumb_func_end sub_800D7B8
+
+ thumb_func_start sub_800DAB8
+sub_800DAB8: @ 800DAB8
+ push {lr}
+ ldr r0, _0800DAE8 @ =gUnknown_08D00000
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ ldr r0, _0800DAEC @ =gUnknown_08D00524
+ ldr r1, _0800DAF0 @ =0x0600c000
+ movs r2, 0x80
+ lsls r2, 4
+ bl CpuSet
+ ldr r0, _0800DAF4 @ =gUnknown_08D004E0
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadCompressedPalette
+ bl sub_800D74C
+ bl sub_800D7B8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800DAE8: .4byte gUnknown_08D00000
+_0800DAEC: .4byte gUnknown_08D00524
+_0800DAF0: .4byte 0x0600c000
+_0800DAF4: .4byte gUnknown_08D004E0
+ thumb_func_end sub_800DAB8
+
+ thumb_func_start sub_800DAF8
+sub_800DAF8: @ 800DAF8
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r7, r2, 0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r5, r2, 0
+ lsls r1, 24
+ lsrs r3, r1, 24
+ movs r4, 0
+ ldr r0, _0800DB38 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0800DBB4
+ ldr r0, _0800DB3C @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x12
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _0800DB52
+ cmp r3, 0x1
+ beq _0800DB7A
+ cmp r3, 0x1
+ bgt _0800DB40
+ cmp r3, 0
+ beq _0800DB4A
+ b _0800DB84
+ .align 2, 0
+_0800DB38: .4byte gBattleTypeFlags
+_0800DB3C: .4byte gTasks
+_0800DB40:
+ cmp r3, 0x2
+ beq _0800DB4E
+ cmp r3, 0x3
+ beq _0800DB6E
+ b _0800DB84
+_0800DB4A:
+ ldrh r0, [r1, 0xE]
+ b _0800DB70
+_0800DB4E:
+ ldrh r1, [r1, 0xE]
+ b _0800DB7C
+_0800DB52:
+ cmp r3, 0x1
+ beq _0800DB6E
+ cmp r3, 0x1
+ bgt _0800DB60
+ cmp r3, 0
+ beq _0800DB6A
+ b _0800DB84
+_0800DB60:
+ cmp r3, 0x2
+ beq _0800DB76
+ cmp r3, 0x3
+ beq _0800DB7A
+ b _0800DB84
+_0800DB6A:
+ ldrh r0, [r1, 0xE]
+ b _0800DB70
+_0800DB6E:
+ ldrh r0, [r1, 0x10]
+_0800DB70:
+ movs r4, 0x3F
+ ands r4, r0
+ b _0800DB84
+_0800DB76:
+ ldrh r1, [r1, 0xE]
+ b _0800DB7C
+_0800DB7A:
+ ldrh r1, [r1, 0x10]
+_0800DB7C:
+ movs r0, 0xFC
+ lsls r0, 4
+ ands r0, r1
+ lsrs r4, r0, 6
+_0800DB84:
+ movs r3, 0
+ movs r6, 0x3
+ ldr r0, _0800DBB0 @ =0x00006001
+ adds r5, r0, 0
+ mov r2, sp
+_0800DB8E:
+ lsls r1, r3, 1
+ adds r0, r6, 0
+ lsls r0, r1
+ ands r0, r4
+ asrs r0, r1
+ adds r0, r5
+ strh r0, [r2]
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x2
+ ble _0800DB8E
+ mov r0, sp
+ adds r1, r7, 0
+ movs r2, 0x3
+ bl CpuSet
+ b _0800DC12
+ .align 2, 0
+_0800DBB0: .4byte 0x00006001
+_0800DBB4:
+ ldr r0, _0800DBD0 @ =0x02000000
+ ldr r1, _0800DBD4 @ =0x000160cb
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r3, r0
+ bne _0800DBDC
+ ldr r1, _0800DBD8 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldrh r4, [r0, 0xE]
+ b _0800DBE8
+ .align 2, 0
+_0800DBD0: .4byte 0x02000000
+_0800DBD4: .4byte 0x000160cb
+_0800DBD8: .4byte gTasks
+_0800DBDC:
+ ldr r1, _0800DC1C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r4, [r0, 0x10]
+_0800DBE8:
+ movs r3, 0
+ movs r6, 0x3
+ ldr r2, _0800DC20 @ =0x00006001
+ adds r5, r2, 0
+ mov r2, sp
+_0800DBF2:
+ lsls r1, r3, 1
+ adds r0, r6, 0
+ lsls r0, r1
+ ands r0, r4
+ asrs r0, r1
+ adds r0, r5
+ strh r0, [r2]
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x5
+ ble _0800DBF2
+ mov r0, sp
+ adds r1, r7, 0
+ movs r2, 0x6
+ bl CpuSet
+_0800DC12:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800DC1C: .4byte gTasks
+_0800DC20: .4byte 0x00006001
+ thumb_func_end sub_800DAF8
+
+ .section .text_800DC24
+
+ thumb_func_start sub_800DE30
+sub_800DE30: @ 800DE30
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _0800DE64 @ =gTasks
+ lsls r0, 2
+ mov r10, r0
+ add r0, r9
+ lsls r0, 3
+ adds r6, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bne _0800DE58
+ b _0800DF9C
+_0800DE58:
+ cmp r0, 0x1
+ bgt _0800DE68
+ cmp r0, 0
+ beq _0800DE70
+ b _0800E212
+ .align 2, 0
+_0800DE64: .4byte gTasks
+_0800DE68:
+ cmp r0, 0x2
+ bne _0800DE6E
+ b _0800E03C
+_0800DE6E:
+ b _0800E212
+_0800DE70:
+ ldr r0, _0800DED0 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0800DEE0
+ ldr r0, _0800DED4 @ =gLinkPlayers
+ ldr r2, _0800DED8 @ =gUnknown_081F9680
+ mov r8, r2
+ adds r7, r0, 0
+ adds r7, 0x8
+ movs r5, 0x3
+_0800DE88:
+ ldrb r0, [r7, 0x10]
+ movs r1, 0x3
+ ands r1, r0
+ str r1, [sp, 0x8]
+ lsls r4, r1, 1
+ adds r4, r1
+ lsls r4, 2
+ mov r2, r8
+ adds r0, r4, r2
+ ldr r1, [r0]
+ str r1, [sp, 0xC]
+ ldrh r2, [r0, 0x4]
+ ldrb r3, [r0, 0x6]
+ ldrb r0, [r0, 0x7]
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ adds r0, r1, 0
+ adds r1, r7, 0
+ bl sub_8002E4C
+ ldr r0, [sp, 0xC]
+ bl sub_8002F44
+ ldr r2, _0800DEDC @ =gUnknown_081F9680 + 0x8
+ adds r4, r2
+ ldr r2, [r4]
+ mov r0, r9
+ ldr r1, [sp, 0x8]
+ bl sub_800DAF8
+ adds r7, 0x1C
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0800DE88
+ b _0800DF70
+ .align 2, 0
+_0800DED0: .4byte gBattleTypeFlags
+_0800DED4: .4byte gLinkPlayers
+_0800DED8: .4byte gUnknown_081F9680
+_0800DEDC: .4byte gUnknown_081F9680 + 0x8
+_0800DEE0:
+ ldr r0, _0800DF84 @ =0x02000000
+ ldr r5, _0800DF88 @ =0x000160cb
+ adds r0, r5
+ ldrb r7, [r0]
+ movs r0, 0x1
+ adds r6, r7, 0
+ eors r6, r0
+ adds r1, r6, 0
+ ldr r2, _0800DF8C @ =gLinkPlayers
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0
+ beq _0800DF04
+ adds r6, r7, 0
+ adds r7, r1, 0
+_0800DF04:
+ ldr r0, _0800DF90 @ =gUnknown_081F9680
+ mov r8, r0
+ adds r0, 0x30
+ mov r1, r8
+ ldr r4, [r1, 0x30]
+ lsls r1, r7, 3
+ subs r1, r7
+ lsls r1, 2
+ ldr r2, _0800DF94 @ =gLinkPlayers + 0x8
+ adds r1, r2
+ ldrh r2, [r0, 0x4]
+ ldrb r3, [r0, 0x6]
+ ldrb r0, [r0, 0x7]
+ str r0, [sp]
+ movs r5, 0x1
+ str r5, [sp, 0x4]
+ adds r0, r4, 0
+ bl sub_8002E4C
+ adds r0, r4, 0
+ bl sub_8002F44
+ mov r0, r8
+ ldr r2, [r0, 0x38]
+ mov r0, r9
+ adds r1, r7, 0
+ bl sub_800DAF8
+ mov r0, r8
+ adds r0, 0x3C
+ mov r1, r8
+ ldr r4, [r1, 0x3C]
+ lsls r1, r6, 3
+ subs r1, r6
+ lsls r1, 2
+ ldr r2, _0800DF94 @ =gLinkPlayers + 0x8
+ adds r1, r2
+ ldrh r2, [r0, 0x4]
+ ldrb r3, [r0, 0x6]
+ ldrb r0, [r0, 0x7]
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ adds r0, r4, 0
+ bl sub_8002E4C
+ adds r0, r4, 0
+ bl sub_8002F44
+ mov r5, r8
+ ldr r2, [r5, 0x44]
+ mov r0, r9
+ adds r1, r6, 0
+ bl sub_800DAF8
+_0800DF70:
+ ldr r0, _0800DF98 @ =gTasks
+ mov r1, r10
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0800E212
+ .align 2, 0
+_0800DF84: .4byte 0x02000000
+_0800DF88: .4byte 0x000160cb
+_0800DF8C: .4byte gLinkPlayers
+_0800DF90: .4byte gUnknown_081F9680
+_0800DF94: .4byte gLinkPlayers + 0x8
+_0800DF98: .4byte gTasks
+_0800DF9C:
+ ldr r0, _0800E010 @ =0x00002710
+ bl AllocSpritePalette
+ lsls r0, 24
+ ldr r2, _0800E014 @ =gPlttBufferUnfaded
+ lsrs r0, 19
+ ldr r1, _0800E018 @ =0x0000021e
+ adds r0, r1
+ adds r2, r0, r2
+ ldr r1, _0800E01C @ =gPlttBufferFaded
+ adds r0, r1
+ ldr r1, _0800E020 @ =0x00007fff
+ strh r1, [r0]
+ strh r1, [r2]
+ ldr r0, _0800E024 @ =gSpriteTemplate_81F9574
+ movs r1, 0x6C
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ ldr r4, _0800E028 @ =0x02000000
+ ldr r2, _0800E02C @ =0x0001608a
+ adds r7, r4, r2
+ strb r0, [r7]
+ ldr r0, _0800E030 @ =gSpriteTemplate_81F958C
+ movs r1, 0x84
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ ldr r5, _0800E034 @ =0x0001608b
+ adds r4, r5
+ strb r0, [r4]
+ ldr r3, _0800E038 @ =gSprites
+ ldrb r1, [r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ b _0800E212
+ .align 2, 0
+_0800E010: .4byte 0x00002710
+_0800E014: .4byte gPlttBufferUnfaded
+_0800E018: .4byte 0x0000021e
+_0800E01C: .4byte gPlttBufferFaded
+_0800E020: .4byte 0x00007fff
+_0800E024: .4byte gSpriteTemplate_81F9574
+_0800E028: .4byte 0x02000000
+_0800E02C: .4byte 0x0001608a
+_0800E030: .4byte gSpriteTemplate_81F958C
+_0800E034: .4byte 0x0001608b
+_0800E038: .4byte gSprites
+_0800E03C:
+ movs r1, 0x12
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _0800E0A4
+ ldr r4, _0800E090 @ =gUnknown_030042C0
+ ldrh r0, [r6, 0xA]
+ bl Sin2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0800E056
+ adds r0, 0x1F
+_0800E056:
+ asrs r1, r0, 5
+ movs r2, 0x14
+ negs r2, r2
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r4]
+ ldr r4, _0800E094 @ =gUnknown_03004288
+ ldrh r0, [r6, 0xC]
+ bl Sin2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0800E074
+ adds r0, 0x1F
+_0800E074:
+ asrs r1, r0, 5
+ movs r5, 0x8C
+ negs r5, r5
+ adds r0, r5, 0
+ subs r0, r1
+ strh r0, [r4]
+ ldr r0, _0800E098 @ =gUnknown_030041B4
+ ldr r2, _0800E09C @ =0x0000ffdc
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldr r0, _0800E0A0 @ =gUnknown_03004280
+ strh r1, [r0]
+ b _0800E110
+ .align 2, 0
+_0800E090: .4byte gUnknown_030042C0
+_0800E094: .4byte gUnknown_03004288
+_0800E098: .4byte gUnknown_030041B4
+_0800E09C: .4byte 0x0000ffdc
+_0800E0A0: .4byte gUnknown_03004280
+_0800E0A4:
+ ldr r4, _0800E134 @ =gUnknown_030042C0
+ ldrh r0, [r6, 0xA]
+ bl Sin2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0800E0B6
+ adds r0, 0x1F
+_0800E0B6:
+ asrs r1, r0, 5
+ movs r5, 0x14
+ negs r5, r5
+ adds r0, r5, 0
+ subs r0, r1
+ strh r0, [r4]
+ ldr r4, _0800E138 @ =gUnknown_030041B4
+ ldrh r0, [r6, 0xA]
+ bl Cos2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0800E0D4
+ adds r0, 0x1F
+_0800E0D4:
+ asrs r0, 5
+ subs r0, 0xA4
+ strh r0, [r4]
+ ldr r4, _0800E13C @ =gUnknown_03004288
+ ldrh r0, [r6, 0xC]
+ bl Sin2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0800E0EC
+ adds r0, 0x1F
+_0800E0EC:
+ asrs r1, r0, 5
+ movs r2, 0x8C
+ negs r2, r2
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r4]
+ ldr r4, _0800E140 @ =gUnknown_03004280
+ ldrh r0, [r6, 0xC]
+ bl Cos2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0800E10A
+ adds r0, 0x1F
+_0800E10A:
+ asrs r0, 5
+ subs r0, 0xA4
+ strh r0, [r4]
+_0800E110:
+ ldr r1, _0800E144 @ =gTasks
+ mov r5, r9
+ lsls r0, r5, 2
+ add r0, r9
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0xC]
+ movs r2, 0xC
+ ldrsh r7, [r1, r2]
+ cmp r7, 0
+ beq _0800E148
+ subs r0, 0x2
+ strh r0, [r1, 0xC]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x2
+ strh r0, [r1, 0xA]
+ b _0800E212
+ .align 2, 0
+_0800E134: .4byte gUnknown_030042C0
+_0800E138: .4byte gUnknown_030041B4
+_0800E13C: .4byte gUnknown_03004288
+_0800E140: .4byte gUnknown_03004280
+_0800E144: .4byte gTasks
+_0800E148:
+ movs r5, 0x12
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ beq _0800E154
+ bl PrintLinkBattleWinLossTie
+_0800E154:
+ movs r0, 0x78
+ bl PlaySE
+ mov r0, r9
+ bl DestroyTask
+ ldr r4, _0800E224 @ =gSprites
+ ldr r0, _0800E228 @ =0x02000000
+ mov r8, r0
+ ldr r1, _0800E22C @ =0x0001608a
+ add r1, r8
+ mov r9, r1
+ ldrb r0, [r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ ldr r5, _0800E230 @ =0x0001608b
+ add r8, r5
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x40
+ ldr r5, _0800E234 @ =0x000003ff
+ adds r0, r5, 0
+ ands r1, r0
+ ldr r0, _0800E238 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+ mov r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r7, [r0, 0x2E]
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+ mov r5, r9
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x20]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x20]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r7, [r0, 0x32]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r7, [r0, 0x32]
+_0800E212:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800E224: .4byte gSprites
+_0800E228: .4byte 0x02000000
+_0800E22C: .4byte 0x0001608a
+_0800E230: .4byte 0x0001608b
+_0800E234: .4byte 0x000003ff
+_0800E238: .4byte 0xfffffc00
+ thumb_func_end sub_800DE30
+
+ thumb_func_start sub_800E23C
+sub_800E23C: @ 800E23C
+ push {r4,r5,lr}
+ ldr r0, _0800E29C @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E2DC
+ ldr r0, _0800E2A0 @ =gVersusFrameGfx
+ ldr r1, _0800E2A4 @ =0x06004000
+ bl LZDecompressVram
+ ldr r4, _0800E2A8 @ =gVersusFrameTilemap
+ ldr r1, _0800E2AC @ =0x0600e000
+ adds r0, r4, 0
+ bl LZDecompressVram
+ ldr r1, _0800E2B0 @ =0x0600f000
+ adds r0, r4, 0
+ bl LZDecompressVram
+ ldr r0, _0800E2B4 @ =gUnknown_08E5DC2C
+ ldr r1, _0800E2B8 @ =0x06010000
+ bl LZDecompressVram
+ ldr r0, _0800E2BC @ =gVersusFramePal
+ movs r1, 0x60
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r1, _0800E2C0 @ =REG_BG1CNT
+ ldr r2, _0800E2C4 @ =0x00005c04
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0800E2C8 @ =REG_WININ
+ movs r1, 0x36
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r0, _0800E2CC @ =gUnknown_030041B4
+ ldr r2, _0800E2D0 @ =0x0000ff5c
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldr r0, _0800E2D4 @ =gUnknown_03004280
+ strh r1, [r0]
+ ldr r0, _0800E2D8 @ =gUnknown_081F95A4
+ bl LoadCompressedObjectPic
+ b _0800E3FC
+ .align 2, 0
+_0800E29C: .4byte gBattleTypeFlags
+_0800E2A0: .4byte gVersusFrameGfx
+_0800E2A4: .4byte 0x06004000
+_0800E2A8: .4byte gVersusFrameTilemap
+_0800E2AC: .4byte 0x0600e000
+_0800E2B0: .4byte 0x0600f000
+_0800E2B4: .4byte gUnknown_08E5DC2C
+_0800E2B8: .4byte 0x06010000
+_0800E2BC: .4byte gVersusFramePal
+_0800E2C0: .4byte REG_BG1CNT
+_0800E2C4: .4byte 0x00005c04
+_0800E2C8: .4byte REG_WININ
+_0800E2CC: .4byte gUnknown_030041B4
+_0800E2D0: .4byte 0x0000ff5c
+_0800E2D4: .4byte gUnknown_03004280
+_0800E2D8: .4byte gUnknown_081F95A4
+_0800E2DC:
+ ldr r0, _0800E2F0 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E300
+ ldr r0, _0800E2F4 @ =gBattleTerrainAnimTiles_Building
+ ldr r1, _0800E2F8 @ =0x06004000
+ bl LZDecompressVram
+ ldr r0, _0800E2FC @ =gBattleTerrainAnimTilemap_Building
+ b _0800E3D2
+ .align 2, 0
+_0800E2F0: .4byte 0x00000902
+_0800E2F4: .4byte gBattleTerrainAnimTiles_Building
+_0800E2F8: .4byte 0x06004000
+_0800E2FC: .4byte gBattleTerrainAnimTilemap_Building
+_0800E300:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E348
+ ldr r0, _0800E320 @ =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0800E330
+ ldr r0, _0800E324 @ =gBattleTerrainAnimTiles_Cave
+ ldr r1, _0800E328 @ =0x06004000
+ bl LZDecompressVram
+ ldr r0, _0800E32C @ =gBattleTerrainAnimTilemap_Cave
+ b _0800E3D2
+ .align 2, 0
+_0800E320: .4byte gGameVersion
+_0800E324: .4byte gBattleTerrainAnimTiles_Cave
+_0800E328: .4byte 0x06004000
+_0800E32C: .4byte gBattleTerrainAnimTilemap_Cave
+_0800E330:
+ ldr r0, _0800E33C @ =gBattleTerrainAnimTiles_Underwater
+ ldr r1, _0800E340 @ =0x06004000
+ bl LZDecompressVram
+ ldr r0, _0800E344 @ =gBattleTerrainAnimTilemap_Underwater
+ b _0800E3D2
+ .align 2, 0
+_0800E33C: .4byte gBattleTerrainAnimTiles_Underwater
+_0800E340: .4byte 0x06004000
+_0800E344: .4byte gBattleTerrainAnimTilemap_Underwater
+_0800E348:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E3A0
+ ldr r2, _0800E370 @ =gTrainers
+ ldr r0, _0800E374 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x19
+ bne _0800E384
+ ldr r0, _0800E378 @ =gBattleTerrainAnimTiles_Building
+ ldr r1, _0800E37C @ =0x06004000
+ bl LZDecompressVram
+ ldr r0, _0800E380 @ =gBattleTerrainAnimTilemap_Building
+ b _0800E3D2
+ .align 2, 0
+_0800E370: .4byte gTrainers
+_0800E374: .4byte gTrainerBattleOpponent
+_0800E378: .4byte gBattleTerrainAnimTiles_Building
+_0800E37C: .4byte 0x06004000
+_0800E380: .4byte gBattleTerrainAnimTilemap_Building
+_0800E384:
+ cmp r0, 0x20
+ bne _0800E3A0
+ ldr r0, _0800E394 @ =gBattleTerrainAnimTiles_Building
+ ldr r1, _0800E398 @ =0x06004000
+ bl LZDecompressVram
+ ldr r0, _0800E39C @ =gBattleTerrainAnimTilemap_Building
+ b _0800E3D2
+ .align 2, 0
+_0800E394: .4byte gBattleTerrainAnimTiles_Building
+_0800E398: .4byte 0x06004000
+_0800E39C: .4byte gBattleTerrainAnimTilemap_Building
+_0800E3A0:
+ bl sav1_map_get_battletype
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800E3EC
+ ldr r4, _0800E3DC @ =gBattleTerrainTable
+ ldr r5, _0800E3E0 @ =gBattleTerrain
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x8
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _0800E3E4 @ =0x06004000
+ bl LZDecompressVram
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0xC
+ adds r0, r4
+ ldr r0, [r0]
+_0800E3D2:
+ ldr r1, _0800E3E8 @ =0x0600e000
+ bl LZDecompressVram
+ b _0800E3FC
+ .align 2, 0
+_0800E3DC: .4byte gBattleTerrainTable
+_0800E3E0: .4byte gBattleTerrain
+_0800E3E4: .4byte 0x06004000
+_0800E3E8: .4byte 0x0600e000
+_0800E3EC:
+ ldr r0, _0800E404 @ =gBattleTerrainAnimTiles_Building
+ ldr r1, _0800E408 @ =0x06004000
+ bl LZDecompressVram
+ ldr r0, _0800E40C @ =gBattleTerrainAnimTilemap_Building
+ ldr r1, _0800E410 @ =0x0600e000
+ bl LZDecompressVram
+_0800E3FC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800E404: .4byte gBattleTerrainAnimTiles_Building
+_0800E408: .4byte 0x06004000
+_0800E40C: .4byte gBattleTerrainAnimTilemap_Building
+_0800E410: .4byte 0x0600e000
+ thumb_func_end sub_800E23C
+
+ thumb_func_start sub_800E414
+sub_800E414: @ 800E414
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0
+ cmp r0, 0x6
+ bls _0800E422
+ b _0800E7BA
+_0800E422:
+ lsls r0, 2
+ ldr r1, _0800E42C @ =_0800E430
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800E42C: .4byte _0800E430
+ .align 2, 0
+_0800E430:
+ .4byte _0800E44C
+ .4byte _0800E45C
+ .4byte _0800E474
+ .4byte _0800E484
+ .4byte _0800E590
+ .4byte _0800E69C
+ .4byte _0800E7B4
+_0800E44C:
+ ldr r0, _0800E458 @ =gUnknown_08D00000
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ b _0800E7BC
+ .align 2, 0
+_0800E458: .4byte gUnknown_08D00000
+_0800E45C:
+ ldr r0, _0800E46C @ =gUnknown_08D00524
+ ldr r1, _0800E470 @ =0x0600c000
+ movs r2, 0x80
+ lsls r2, 4
+ bl CpuSet
+ b _0800E7BC
+ .align 2, 0
+_0800E46C: .4byte gUnknown_08D00524
+_0800E470: .4byte 0x0600c000
+_0800E474:
+ ldr r0, _0800E480 @ =gUnknown_08D004E0
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadCompressedPalette
+ b _0800E7BC
+ .align 2, 0
+_0800E480: .4byte gUnknown_08D004E0
+_0800E484:
+ ldr r0, _0800E4A8 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ ldr r0, _0800E4AC @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E492
+ b _0800E57C
+_0800E492:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E4C0
+ ldr r0, _0800E4B0 @ =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0800E4B8
+ ldr r0, _0800E4B4 @ =gBattleTerrainTiles_Cave
+ b _0800E57E
+ .align 2, 0
+_0800E4A8: .4byte gBattleTypeFlags
+_0800E4AC: .4byte 0x00000902
+_0800E4B0: .4byte gGameVersion
+_0800E4B4: .4byte gBattleTerrainTiles_Cave
+_0800E4B8:
+ ldr r0, _0800E4BC @ =gBattleTerrainTiles_Water
+ b _0800E57E
+ .align 2, 0
+_0800E4BC: .4byte gBattleTerrainTiles_Water
+_0800E4C0:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E4F0
+ ldr r2, _0800E4E4 @ =gTrainers
+ ldr r0, _0800E4E8 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x19
+ beq _0800E57C
+ cmp r0, 0x20
+ bne _0800E4F0
+ ldr r0, _0800E4EC @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E4E4: .4byte gTrainers
+_0800E4E8: .4byte gTrainerBattleOpponent
+_0800E4EC: .4byte gBattleTerrainTiles_Stadium
+_0800E4F0:
+ bl sav1_map_get_battletype
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bls _0800E4FE
+ b _0800E7BC
+_0800E4FE:
+ lsls r0, 2
+ ldr r1, _0800E508 @ =_0800E50C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800E508: .4byte _0800E50C
+ .align 2, 0
+_0800E50C:
+ .4byte _0800E530
+ .4byte _0800E57C
+ .4byte _0800E54C
+ .4byte _0800E554
+ .4byte _0800E55C
+ .4byte _0800E564
+ .4byte _0800E56C
+ .4byte _0800E574
+ .4byte _0800E57C
+_0800E530:
+ ldr r2, _0800E544 @ =gBattleTerrainTable
+ ldr r0, _0800E548 @ =gBattleTerrain
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ b _0800E57E
+ .align 2, 0
+_0800E544: .4byte gBattleTerrainTable
+_0800E548: .4byte gBattleTerrain
+_0800E54C:
+ ldr r0, _0800E550 @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E550: .4byte gBattleTerrainTiles_Stadium
+_0800E554:
+ ldr r0, _0800E558 @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E558: .4byte gBattleTerrainTiles_Stadium
+_0800E55C:
+ ldr r0, _0800E560 @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E560: .4byte gBattleTerrainTiles_Stadium
+_0800E564:
+ ldr r0, _0800E568 @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E568: .4byte gBattleTerrainTiles_Stadium
+_0800E56C:
+ ldr r0, _0800E570 @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E570: .4byte gBattleTerrainTiles_Stadium
+_0800E574:
+ ldr r0, _0800E578 @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E578: .4byte gBattleTerrainTiles_Stadium
+_0800E57C:
+ ldr r0, _0800E588 @ =gBattleTerrainTiles_Building
+_0800E57E:
+ ldr r1, _0800E58C @ =0x06008000
+ bl LZDecompressVram
+ b _0800E7BC
+ .align 2, 0
+_0800E588: .4byte gBattleTerrainTiles_Building
+_0800E58C: .4byte 0x06008000
+_0800E590:
+ ldr r0, _0800E5B4 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ ldr r0, _0800E5B8 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E59E
+ b _0800E688
+_0800E59E:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E5CC
+ ldr r0, _0800E5BC @ =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0800E5C4
+ ldr r0, _0800E5C0 @ =gBattleTerrainTilemap_Cave
+ b _0800E68A
+ .align 2, 0
+_0800E5B4: .4byte gBattleTypeFlags
+_0800E5B8: .4byte 0x00000902
+_0800E5BC: .4byte gGameVersion
+_0800E5C0: .4byte gBattleTerrainTilemap_Cave
+_0800E5C4:
+ ldr r0, _0800E5C8 @ =gBattleTerrainTilemap_Water
+ b _0800E68A
+ .align 2, 0
+_0800E5C8: .4byte gBattleTerrainTilemap_Water
+_0800E5CC:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E5FC
+ ldr r2, _0800E5F0 @ =gTrainers
+ ldr r0, _0800E5F4 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x19
+ beq _0800E688
+ cmp r0, 0x20
+ bne _0800E5FC
+ ldr r0, _0800E5F8 @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E5F0: .4byte gTrainers
+_0800E5F4: .4byte gTrainerBattleOpponent
+_0800E5F8: .4byte gBattleTerrainTilemap_Stadium
+_0800E5FC:
+ bl sav1_map_get_battletype
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bls _0800E60A
+ b _0800E7BC
+_0800E60A:
+ lsls r0, 2
+ ldr r1, _0800E614 @ =_0800E618
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800E614: .4byte _0800E618
+ .align 2, 0
+_0800E618:
+ .4byte _0800E63C
+ .4byte _0800E688
+ .4byte _0800E658
+ .4byte _0800E660
+ .4byte _0800E668
+ .4byte _0800E670
+ .4byte _0800E678
+ .4byte _0800E680
+ .4byte _0800E688
+_0800E63C:
+ ldr r2, _0800E650 @ =gBattleTerrainTable
+ ldr r0, _0800E654 @ =gBattleTerrain
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ adds r0, r2
+ ldr r0, [r0]
+ b _0800E68A
+ .align 2, 0
+_0800E650: .4byte gBattleTerrainTable
+_0800E654: .4byte gBattleTerrain
+_0800E658:
+ ldr r0, _0800E65C @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E65C: .4byte gBattleTerrainTilemap_Stadium
+_0800E660:
+ ldr r0, _0800E664 @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E664: .4byte gBattleTerrainTilemap_Stadium
+_0800E668:
+ ldr r0, _0800E66C @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E66C: .4byte gBattleTerrainTilemap_Stadium
+_0800E670:
+ ldr r0, _0800E674 @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E674: .4byte gBattleTerrainTilemap_Stadium
+_0800E678:
+ ldr r0, _0800E67C @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E67C: .4byte gBattleTerrainTilemap_Stadium
+_0800E680:
+ ldr r0, _0800E684 @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E684: .4byte gBattleTerrainTilemap_Stadium
+_0800E688:
+ ldr r0, _0800E694 @ =gBattleTerrainTilemap_Building
+_0800E68A:
+ ldr r1, _0800E698 @ =0x0600d000
+ bl LZDecompressVram
+ b _0800E7BC
+ .align 2, 0
+_0800E694: .4byte gBattleTerrainTilemap_Building
+_0800E698: .4byte 0x0600d000
+_0800E69C:
+ ldr r0, _0800E6C0 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ ldr r0, _0800E6C4 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E6AA
+ b _0800E7A4
+_0800E6AA:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E6D8
+ ldr r0, _0800E6C8 @ =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0800E6D0
+ ldr r0, _0800E6CC @ =gBattleTerrainPalette_Groudon
+ b _0800E7A6
+ .align 2, 0
+_0800E6C0: .4byte gBattleTypeFlags
+_0800E6C4: .4byte 0x00000902
+_0800E6C8: .4byte gGameVersion
+_0800E6CC: .4byte gBattleTerrainPalette_Groudon
+_0800E6D0:
+ ldr r0, _0800E6D4 @ =gBattleTerrainPalette_Kyogre
+ b _0800E7A6
+ .align 2, 0
+_0800E6D4: .4byte gBattleTerrainPalette_Kyogre
+_0800E6D8:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E710
+ ldr r2, _0800E6F8 @ =gTrainers
+ ldr r0, _0800E6FC @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x19
+ bne _0800E704
+ ldr r0, _0800E700 @ =gBattleTerrainPalette_BuildingLeader
+ b _0800E7A6
+ .align 2, 0
+_0800E6F8: .4byte gTrainers
+_0800E6FC: .4byte gTrainerBattleOpponent
+_0800E700: .4byte gBattleTerrainPalette_BuildingLeader
+_0800E704:
+ cmp r0, 0x20
+ bne _0800E710
+ ldr r0, _0800E70C @ =gBattleTerrainPalette_StadiumSteven
+ b _0800E7A6
+ .align 2, 0
+_0800E70C: .4byte gBattleTerrainPalette_StadiumSteven
+_0800E710:
+ bl sav1_map_get_battletype
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bhi _0800E7BC
+ lsls r0, 2
+ ldr r1, _0800E728 @ =_0800E72C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800E728: .4byte _0800E72C
+ .align 2, 0
+_0800E72C:
+ .4byte _0800E750
+ .4byte _0800E76C
+ .4byte _0800E774
+ .4byte _0800E77C
+ .4byte _0800E784
+ .4byte _0800E78C
+ .4byte _0800E794
+ .4byte _0800E79C
+ .4byte _0800E7A4
+_0800E750:
+ ldr r2, _0800E764 @ =gBattleTerrainTable
+ ldr r0, _0800E768 @ =gBattleTerrain
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x10
+ adds r0, r2
+ ldr r0, [r0]
+ b _0800E7A6
+ .align 2, 0
+_0800E764: .4byte gBattleTerrainTable
+_0800E768: .4byte gBattleTerrain
+_0800E76C:
+ ldr r0, _0800E770 @ =gBattleTerrainPalette_BuildingGym
+ b _0800E7A6
+ .align 2, 0
+_0800E770: .4byte gBattleTerrainPalette_BuildingGym
+_0800E774:
+ ldr r0, _0800E778 @ =gBattleTerrainPalette_StadiumMagma
+ b _0800E7A6
+ .align 2, 0
+_0800E778: .4byte gBattleTerrainPalette_StadiumMagma
+_0800E77C:
+ ldr r0, _0800E780 @ =gBattleTerrainPalette_StadiumAqua
+ b _0800E7A6
+ .align 2, 0
+_0800E780: .4byte gBattleTerrainPalette_StadiumAqua
+_0800E784:
+ ldr r0, _0800E788 @ =gBattleTerrainPalette_StadiumSidney
+ b _0800E7A6
+ .align 2, 0
+_0800E788: .4byte gBattleTerrainPalette_StadiumSidney
+_0800E78C:
+ ldr r0, _0800E790 @ =gBattleTerrainPalette_StadiumPhoebe
+ b _0800E7A6
+ .align 2, 0
+_0800E790: .4byte gBattleTerrainPalette_StadiumPhoebe
+_0800E794:
+ ldr r0, _0800E798 @ =gBattleTerrainPalette_StadiumGlacia
+ b _0800E7A6
+ .align 2, 0
+_0800E798: .4byte gBattleTerrainPalette_StadiumGlacia
+_0800E79C:
+ ldr r0, _0800E7A0 @ =gBattleTerrainPalette_StadiumDrake
+ b _0800E7A6
+ .align 2, 0
+_0800E7A0: .4byte gBattleTerrainPalette_StadiumDrake
+_0800E7A4:
+ ldr r0, _0800E7B0 @ =gBattleTerrainPalette_BattleTower
+_0800E7A6:
+ movs r1, 0x20
+ movs r2, 0x60
+ bl LoadCompressedPalette
+ b _0800E7BC
+ .align 2, 0
+_0800E7B0: .4byte gBattleTerrainPalette_BattleTower
+_0800E7B4:
+ bl sub_800D74C
+ b _0800E7BC
+_0800E7BA:
+ movs r4, 0x1
+_0800E7BC:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800E414
+
+ .align 2, 0 @ Don't pad with nop.